Black screen on start up of Magic Mirror



  • Hi everyone, extreme beginner here so please bear with me. I’ve been using my mirror successfully for the past 6-8 months without issues. Just today I attempted to install the NowPlayingOnSpotify module and the install, credentials set-up etc. was all pretty straight forward. Once everything was finally ready I opened MagicMirror to have a look and it was only a blank screen.

    Thinking it was the spotify module I removed that from my config file and still no luck. I even went on to remove the module itself from my module folder but also no luck. After hours of trying different things online I can’t get this figured out. Saw some things about possibly missing a node_helper.js? But I’m not sure how I know mine is missing or how to install it or even what it is. Sorry again, all new to this.

    Additionally, I’ve tried re-installing node.js as well as re-entering the Magic Mirror repository. These also did not work.

    Below is what I get when I try to start:

    pi@raspberrypi:~ $ cd MagicMirror
    pi@raspberrypi:~/MagicMirror $ npm start

    magicmirror@2.10.1 start /home/pi/MagicMirror
    ./run-start.sh

    [20:17:22.933] [LOG] Starting MagicMirror: v2.10.1
    [20:17:22.951] [LOG] Loading config …
    [20:17:22.970] [LOG] Loading module helpers …
    [20:17:22.973] [LOG] No helper found for module: alert.
    [20:17:22.976] [ERROR] WARNING! Could not load config file. Starting with default configuration. Error found: TypeError: Cannot read property ‘split’ of undefined
    [20:17:22.979] [LOG] Loading module helpers …
    [20:17:22.981] [LOG] No helper found for module: alert.
    [20:17:22.982] [ERROR] App threw an error during load
    [20:17:22.983] [ERROR] TypeError: Cannot read property ‘split’ of undefined
    at loadModule (/home/pi/MagicMirror/js/app.js:113:25)
    at loadNextModule (/home/pi/MagicMirror/js/app.js:166:5)
    at /home/pi/MagicMirror/js/app.js:168:6
    at loadModule (/home/pi/MagicMirror/js/app.js:151:4)
    at loadNextModule (/home/pi/MagicMirror/js/app.js:166:5)
    at loadModules (/home/pi/MagicMirror/js/app.js:177:3)
    at /home/pi/MagicMirror/js/app.js:223:4
    at loadConfig (/home/pi/MagicMirror/js/app.js:82:4)
    at App.start (/home/pi/MagicMirror/js/app.js:211:3)
    at Object. (/home/pi/MagicMirror/js/electron.js:117:7)
    [20:17:22.985] [LOG] Whoops! There was an uncaught exception…
    [20:17:22.986] [ERROR] TypeError: Cannot read property ‘split’ of undefined
    at loadModule (/home/pi/MagicMirror/js/app.js:113:25)
    at loadNextModule (/home/pi/MagicMirror/js/app.js:166:5)
    at /home/pi/MagicMirror/js/app.js:168:6
    at loadModule (/home/pi/MagicMirror/js/app.js:151:4)
    at loadNextModule (/home/pi/MagicMirror/js/app.js:166:5)
    at loadModules (/home/pi/MagicMirror/js/app.js:177:3)
    at /home/pi/MagicMirror/js/app.js:223:4
    at loadConfig (/home/pi/MagicMirror/js/app.js:82:4)
    at App.start (/home/pi/MagicMirror/js/app.js:211:3)
    at Object. (/home/pi/MagicMirror/js/electron.js:117:7)
    [20:17:22.994] [LOG] MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
    [20:17:22.996] [LOG] If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
    [20:17:23.264] [LOG] Launching application.
    [20:18:07.282] [LOG] Shutting down server…



  • @bkrand95 that looks like a bad config for compliments



  • @sdetweil What is telling you that it is the compliments module? Just trying to understand, thanks.



  • @bkrand95 I added code to the compliments module to support \n (newline) in the compliment text.
    Using the split function.

    The error is split can’t work on an empty string

    So, it sounds like no compliment for the time of day



  • Or there is a problem with a config entry



  • @sdetweil
    Below is my config file (put x’s in place of all the ID’s…). I actually have my compliments module commented out so I’m not sure how that can be an issue.

    /* Magic Mirror Config Sample
     *
     * By Michael Teeuw http://michaelteeuw.nl
     * MIT Licensed.
     *
     * For more information how you can configurate this file
     * See https://github.com/MichMich/MagicMirror#configuration
     *
     */
    
    var config = {
    	//address: "localhost", // Address to listen on, can be:
    	address: "0.0.0.0",
    	                      // - "localhost", "127.0.0.1", "::1" to listen on loopback interface
    	                     // - another specific IPv4/6 to listen on a specific interface
    	                      // - "", "0.0.0.0", "::" to listen on any interface
    	                      // Default, when address config is left out, is "localhost"
    	port: 8080,
    	//ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.10"], // Set [] to allow all IP addresses
    	//ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],
    	ipWhitelist: [],                                                       // or add a specific IPv4 of 192.168.1.5 :
    	                                                       // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"],
    	                                                       // or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format :
    	                                                       // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"],
    
    	language: "en",
    	timeFormat: 12,
    	units: "imperial",
    
    	modules: [
    		{
    			module: "alert",
    		},
    		{
    			//module: "updatenotification",
    			//position: "top_bar"
    		},
    		{
    			module: "clock",
    			position: "top_left"
    		},
    		{
    			module: "calendar",
    			header: "Calendar",
    			position: "top_left",
    			config: {
    				fade: false,
    				fetchInterval: 5000,
    				colored: true,
    				coloredSymbolOnly: false,
    				maximumNumberOfDays: 90,
    				calendars: [
    					{
    						symbol: "calendar-check",
    						color: "#c7ecff",
    						url: "https://calendar.google.com/calendar/xxxxxxxxxxxxxxxxxxxxxxx
    					}
    				]
    			}
    		},
    		{
    		//	module: "compliments",
    		//	position: "lower_third"
    		},
    		{
    			module: "currentweather",
    			position: "top_right",
    			config: {
    				location: "Lancaster",
    				locationID: "xxxxxxxxx",  //ID from http://bulk.openweathermap.org/sample/; unzip the gz file and find your city
    				appid: "xxxxxxxxx",
    			}
    		},
    
    		{
    			module: "weatherforecast",
    			position: "top_right",
    			header: "Weather Forecast",
    			config: {
    				fade: false,
    				location: "Lancaster",
    				locationID: "xxxxxxxxx",  //ID from https://openweathermap.org/city
    				appid: "xxxxxxxxx"
    			}
    		},
    		{
       			 module: "MMM-Cocktails",
       			 position: "bottom_center", // Editable footprint - Fits anywhere.
       			 config: {
          				maxWidth: "400px",     // See provided .css file for full customization options
            			header: "",
        			}
    		},
        	        {
            	//module: 'MMM-Remote-Control',
            	// uncomment the following line to show the URL of the remote control on the mirror
            	//position: 'bottom_left'
            		// you can hide this module afterwards from the remote control itself
            		//config: {
            		//    apiKey: ''
            		//}
       		},
       		{
    			module: 'MMM-ModuleScheduler',
    			config: {
    				notification_schedule: [
    					// SHUTDOWN AT 07:04AM MON-FRI
    					{notification: 'REMOTE_ACTION', schedule: '04 7 * * 1-5', payload: {action: "SHUTDOWN"}},
    					// SHUTDOWN AT 11:30PM FRI & SAT
    					{notification: 'REMOTE_ACTION', schedule: '30 23 * * 5-6', payload: {action: "SHUTDOWN"}},
    					// SHUTDOWN AT 10:55PM SUN-THUR
    					{notification: 'REMOTE_ACTION', schedule: '50 22 * * SUN-THU', payload: {action: "SHUTDOWN"}}
    				]
    			}
    		},
    		{
    			module: "newsfeed",
    			position: "bottom_bar",
    			config: {
    				feeds: [
    					{
    						title: "New York Times",
    						url: "http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml"
    					}
    				],
    				showSourceTitle: true,
    				showPublishDate: true
    			}
    		},
    		{
    			disabled: true,
    			module: 'MMM-EARTH-Live',
    			position: 'bottom_center',
    			config: {
      			  height:"270px",
       			 width:"480px",
       			 useHeader: false,                // true if you want a header
       			 header: "",                      // Change in config file. useHeader must be true
       			 animationSpeed: 1000,            // fade speed
    			}
    		},
    		{
    		  module: "MMM-NowPlayingOnSpotify",
    		  position: "top_left",
    		
    		  config: {
    		    clientID: "xxxxxxxxx",
    		    clientSecret: "xxxxxxxxx",
    		    accessToken: "xxxxxxxxx",
    		    refreshToken: "xxxxxxxxx"
    		  }
    		},
    
    	]
    
    };
    
    /*************** DO NOT EDIT THE LINE BELOW ***************/
    if (typeof module !== "undefined") {module.exports = config;}
    
    


  • @bkrand95 if u comment out a module, you must comment out the braces too,
    Not like this

    {
    //  module : "compliments"'
    //
    },
    

    That leaves an empty entry in the modules array. Thus the problem

    You can also disable a module, by adding

    disabled: true,
    

    After the module: statement without commenting anything out



  • @sdetweil Thanks for the advice, I went ahead and added the “disabled: true” line instead of commenting out the modules. I’ve seemed to have made some progress as I no longer get the black screen, but now I get the familiar message: “Please create a config file. See README for more information.” I have gotten this message before and it’s usual due to an error in my config file, although this time I really can’t find anything. Below is my current config… any errors pop out? Thanks again for all the help.

    /* Magic Mirror Config Sample
     *
     * By Michael Teeuw http://michaelteeuw.nl
     * MIT Licensed.
     *
     * For more information how you can configurate this file
     * See https://github.com/MichMich/MagicMirror#configuration
     *
     */
    
    var config = {
    	//address: "localhost", // Address to listen on, can be:
    	address: "0.0.0.0",
    	                      // - "localhost", "127.0.0.1", "::1" to listen on loopback interface
    	                     // - another specific IPv4/6 to listen on a specific interface
    	                      // - "", "0.0.0.0", "::" to listen on any interface
    	                      // Default, when address config is left out, is "localhost"
    	port: 8080,
    	//ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.10"], // Set [] to allow all IP addresses
    	//ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],
    	ipWhitelist: [],                                                       // or add a specific IPv4 of 192.168.1.5 :
    	                                                       // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"],
    	                                                       // or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format :
    	                                                       // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"],
    
    	language: "en",
    	timeFormat: 12,
    	units: "imperial",
    
    	modules: [
    
    		{
    			disabled: true,
    			module: "updatenotification",
    			position: "top_bar"
    		},
    		{
    			module: "clock",
    			position: "top_left"
    		},
    		{
    			module: "calendar",
    			header: "Calendar",
    			position: "top_left",
    			config: {
    				fade: false,
    				fetchInterval: 5000,
    				colored: true,
    				coloredSymbolOnly: false,
    				maximumNumberOfDays: 90,
    				calendars: [
    					{
    						symbol: "calendar-check",
    						color: "#c7ecff",
    						url: "xxxxx"
    					}
    				]
    			}
    		},
    		{
    			disabled: true,
    			module: "compliments",
    			position: "lower_third"
    		},
    		{
    			module: "currentweather",
    			position: "top_right",
    			config: {
    				location: "Lancaster",
    				locationID: "xxxxx",  //ID from http://bulk.openweathermap.org/sample/; unzip the gz file and find your city
    				appid: "xxxxx",
    			}
    		},
    
    		{
    			module: "weatherforecast",
    			position: "top_right",
    			header: "Weather Forecast",
    			config: {
    				fade: false,
    				location: "Lancaster",
    				locationID: "xxxxx",  //ID from https://openweathermap.org/city
    				appid: "xxxxx"
    			}
    		},
    		{
       			 module: "MMM-Cocktails",
       			 position: "bottom_center", // Editable footprint - Fits anywhere.
       			 config: {
          				maxWidth: "400px",     // See provided .css file for full customization options
            			header: "",
        			}
    		},
        	        {
    			disabled: true,
            		module: 'MMM-Remote-Control',
            		uncomment the following line to show the URL of the remote control on the mirror
            		position: 'bottom_left'
            		// you can hide this module afterwards from the remote control itself
            		config: {
            		    apiKey: ''
            		}
       		},
       		{
    			module: 'MMM-ModuleScheduler',
    			config: {
    				notification_schedule: [
    					// SHUTDOWN AT 07:04AM MON-FRI
    					{notification: 'REMOTE_ACTION', schedule: '04 7 * * 1-5', payload: {action: "SHUTDOWN"}},
    					// SHUTDOWN AT 11:30PM FRI & SAT
    					{notification: 'REMOTE_ACTION', schedule: '30 23 * * 5-6', payload: {action: "SHUTDOWN"}},
    					// SHUTDOWN AT 10:55PM SUN-THUR
    					{notification: 'REMOTE_ACTION', schedule: '50 22 * * SUN-THU', payload: {action: "SHUTDOWN"}}
    				]
    			}
    		},
    		{
    			module: "newsfeed",
    			position: "bottom_bar",
    			config: {
    				feeds: [
    					{
    						title: "New York Times",
    						url: "http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml"
    					}
    				],
    				showSourceTitle: true,
    				showPublishDate: true
    			}
    		},
    		{
    			disabled: true,
    			module: 'MMM-EARTH-Live',
    			position: 'bottom_center',
    			config: {
      			  height:"270px",
       			 width:"480px",
       			 useHeader: false,                // true if you want a header
       			 header: "",                      // Change in config file. useHeader must be true
       			 animationSpeed: 1000,            // fade speed
    			}
    		},
    		{
    		  module: "MMM-NowPlayingOnSpotify",
    		  position: "top_left",
    		  config: {
    		    clientID: "xxxxx",
    		    clientSecret: "xxxxx",
    		    accessToken: "xxxxx",
    		    refreshToken: "xxxxx"
    		  }
    		},
    	]
    };
    


  • @bkrand95 said in Black screen on start up of Magic Mirror:

    module: ‘MMM-Remote-Control’,
    uncomment the following line to show the URL of the remote control on the mirror
    position: ‘bottom_left’

    The line after MMM-Remote-Control should be a comment,
    and there should be a comma after the ‘bottom_left’.



  • And this line will need a trailing comma

    position: 'bottom_left'