mm-music-player errors



  • after i update magic mirror i had this topic:
    pi@raspberrypi:~/MagicMirror2 $ npm start

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

    Starting MagicMirror: v2.1.1
    Loading config …
    Loading module helpers …
    No helper found for module: alert.
    No helper found for module: clock.
    Initializing new module helper …
    Module helper loaded: calendar
    No helper found for module: compliments.
    No helper found for module: currentweather.
    No helper found for module: weatherforecast.
    Initializing mm-music-player module helper …
    WARNING! Could not load config file. Starting with default configuration. Error found: TypeError: m.loaded is not a function
    Loading module helpers …
    No helper found for module: alert.
    No helper found for module: clock.
    Initializing new module helper …
    Module helper loaded: calendar
    No helper found for module: compliments.
    No helper found for module: currentweather.
    No helper found for module: weatherforecast.
    Initializing mm-music-player module helper …
    App threw an error during load
    TypeError: m.loaded is not a function
    at loadModule (/home/pi/MagicMirror2/js/app.js:144:6)
    at loadNextModule (/home/pi/MagicMirror2/js/app.js:161:5)
    at /home/pi/MagicMirror2/js/app.js:163:6
    at loadModule (/home/pi/MagicMirror2/js/app.js:146:4)
    at loadNextModule (/home/pi/MagicMirror2/js/app.js:161:5)
    at /home/pi/MagicMirror2/js/app.js:163:6
    at loadModule (/home/pi/MagicMirror2/js/app.js:146:4)
    at loadNextModule (/home/pi/MagicMirror2/js/app.js:161:5)
    at /home/pi/MagicMirror2/js/app.js:163:6
    at loadModule (/home/pi/MagicMirror2/js/app.js:146:4)
    Whoops! There was an uncaught exception…
    TypeError: m.loaded is not a function
    at loadModule (/home/pi/MagicMirror2/js/app.js:144:6)
    at loadNextModule (/home/pi/MagicMirror2/js/app.js:161:5)
    at /home/pi/MagicMirror2/js/app.js:163:6
    at loadModule (/home/pi/MagicMirror2/js/app.js:146:4)
    at loadNextModule (/home/pi/MagicMirror2/js/app.js:161:5)
    at /home/pi/MagicMirror2/js/app.js:163:6
    at loadModule (/home/pi/MagicMirror2/js/app.js:146:4)
    at loadNextModule (/home/pi/MagicMirror2/js/app.js:161:5)
    at /home/pi/MagicMirror2/js/app.js:163:6
    at loadModule (/home/pi/MagicMirror2/js/app.js:146:4)
    MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
    If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
    Launching application.

    i tried to understand what could be the problem and it is the mm player
    by commenting the code of the module, the mirror starts withouth errors…
    so … what i can do to resolve this problem??



  • This post is deleted!


  • /* Magic Mirror

    var fs = require(“fs”);
    var Server = require(__dirname + “/server.js”);
    var defaultModules = require(__dirname + “/…/modules/default/defaultmodules.js”);
    var path = require(“path”);

    // Get version number.
    global.version = JSON.parse(fs.readFileSync(“package.json”, “utf8”)).version;
    console.log(“Starting MagicMirror: v” + global.version);

    // global absolute root path
    global.root_path = path.resolve(__dirname + “/…/”);

    // The next part is here to prevent a major exception when there
    // is no internet connection. This could probable be solved better.
    process.on(“uncaughtException”, function (err) {
    console.log(“Whoops! There was an uncaught exception…”);
    console.error(err);
    console.log(“MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?”);
    console.log(“If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues”);
    });

    /* App - The core app.
    */
    var App = function() {
    var nodeHelpers = [];

    /* loadConfig(callback)
     * Loads the config file. combines it with the defaults,
     * and runs the callback with the found config as argument.
     *
     * argument callback function - The callback function.
     */
    
    var loadConfig = function(callback) {
    	console.log("Loading config ...");
    	var defaults = require(__dirname + "/defaults.js");
    	var configFilename = path.resolve(global.root_path + "/config/config.js");
    	try {
    		fs.accessSync(configFilename, fs.F_OK);
    		var c = require(configFilename);
    		var config = Object.assign(defaults, c);
    		callback(config);
    	} catch (e) {
    		if (e.code == "ENOENT") {
    			console.error("WARNING! Could not find config file. Please create one. Starting with default configuration.");
    			callback(defaults);
    		} else if (e instanceof ReferenceError || e instanceof SyntaxError) {
    			console.error("WARNING! Could not validate config file. Please correct syntax errors. Starting with default configuration.");
    			callback(defaults);
    		} else {
    			console.error("WARNING! Could not load config file. Starting with default configuration. Error found: " + e);
    			callback(defaults);
    		}
    	}
    };
    
    /* loadModule(module)
     * Loads a specific module.
     *
     * argument module string - The name of the module (including subpath).
     */
    var loadModule = function(module) {
    
    	var elements = module.split("/");
    	var moduleName = elements[elements.length - 1];
    	var moduleFolder =  __dirname + "/../modules/" + module;
    
    	if (defaultModules.indexOf(moduleName) !== -1) {
    		moduleFolder =  __dirname + "/../modules/default/" + module;
    	}
    
    	var helperPath = moduleFolder + "/node_helper.js";
    
    	var loadModule = true;
    	try {
    		fs.accessSync(helperPath, fs.R_OK);
    	} catch (e) {
    		loadModule = false;
    		console.log("No helper found for module: " + moduleName + ".");
    	}
    
    	if (loadModule) {
    		var Module = require(helperPath);
    		var m = new Module();
    
    		if (m.requiresVersion) {
    			console.log("Check MagicMirror version for node helper '" + moduleName + "' - Minimum version:  " + m.requiresVersion + " - Current version: " + global.version);
    			if (cmpVersions(global.version, m.requiresVersion) >= 0) {
    				console.log("Version is ok!");
    			} else {
    				console.log("Version is incorrect. Skip module: '" + moduleName + "'");
    				return;
    			}
    		}
    
    		m.setName(moduleName);
    		m.setPath(path.resolve(moduleFolder));
    		nodeHelpers.push(m);
    	}
    };
    
    /* loadModules(modules)
     * Loads all modules.
     *
     * argument module string - The name of the module (including subpath).
     */
    var loadModules = function(modules) {
    	console.log("Loading module helpers ...");
    
    	for (var m in modules) {
    		loadModule(modules[m]);
    	}
    
    	console.log("All module helpers loaded.");
    };
    
    /* cmpVersions(a,b)
     * Compare two symantic version numbers and return the difference.
     *
     * argument a string - Version number a.
     * argument a string - Version number b.
     */
    function cmpVersions(a, b) {
    	var i, diff;
    	var regExStrip0 = /(\.0+)+$/;
    	var segmentsA = a.replace(regExStrip0, "").split(".");
    	var segmentsB = b.replace(regExStrip0, "").split(".");
    	var l = Math.min(segmentsA.length, segmentsB.length);
    
    	for (i = 0; i < l; i++) {
    		diff = parseInt(segmentsA[i], 10) - parseInt(segmentsB[i], 10);
    		if (diff) {
    			return diff;
    		}
    	}
    	return segmentsA.length - segmentsB.length;
    }
    
    /* start(callback)
     * This methods starts the core app.
     * It loads the config, then it loads all modules.
     * When it"s done it executs the callback with the config as argument.
     *
     * argument callback function - The callback function.
     */
    this.start = function(callback) {
    
    	loadConfig(function(c) {
    		config = c;
    
    		var modules = [];
    
    		for (var m in config.modules) {
    			var module = config.modules[m];
    			if (modules.indexOf(module.module) === -1 && !module.disabled) {
    				modules.push(module.module);
    			}
    		}
    
    		loadModules(modules);
    
    		var server = new Server(config, function(app, io) {
    			console.log("Server started ...");
    
    			for (var h in nodeHelpers) {
    				var nodeHelper = nodeHelpers[h];
    				nodeHelper.setExpressApp(app);
    				nodeHelper.setSocketIO(io);
    				nodeHelper.start();
    			}
    
    			console.log("Sockets connected & modules started ...");
    
    			if (typeof callback === "function") {
    				callback(config);/* Magic Mirror
    

    var fs = require(“fs”);
    var Server = require(__dirname + “/server.js”);
    var defaultModules = require(__dirname + “/…/modules/default/defaultmodules.js”);
    var path = require(“path”);

    // Get version number.
    global.version = JSON.parse(fs.readFileSync(“package.json”, “utf8”)).version;
    console.log(“Starting MagicMirror: v” + global.version);

    // global absolute root path
    global.root_path = path.resolve(__dirname + “/…/”);

    // The next part is here to prevent a major exception when there
    // is no internet connection. This could probable be solved better.
    process.on(“uncaughtException”, function (err) {
    console.log(“Whoops! There was an uncaught exception…”);
    console.error(err);
    console.log(“MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?”);
    console.log(“If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues”);
    });

    /* App - The core app.
    */
    var App = function() {
    var nodeHelpers = [];

    /* loadConfig(callback)
     * Loads the config file. combines it with the defaults,
     * and runs the callback with the found config as argument.
     *
     * argument callback function - The callback function.
     */
    
    var loadConfig = function(callback) {
    	console.log("Loading config ...");
    	var defaults = require(__dirname + "/defaults.js");
    	var configFilename = path.resolve(global.root_path + "/config/config.js");
    	try {
    		fs.accessSync(configFilename, fs.F_OK);
    		var c = require(configFilename);
    		var config = Object.assign(defaults, c);
    		callback(config);
    	} catch (e) {
    		if (e.code == "ENOENT") {
    			console.error("WARNING! Could not find config file. Please create one. Starting with default configuration.");
    			callback(defaults);
    		} else if (e instanceof ReferenceError || e instanceof SyntaxError) {
    			console.error("WARNING! Could not validate config file. Please correct syntax errors. Starting with default configuration.");
    			callback(defaults);
    		} else {
    			console.error("WARNING! Could not load config file. Starting with default configuration. Error found: " + e);
    			callback(defaults);
    		}
    	}
    };
    
    /* loadModule(module)
     * Loads a specific module.
     *
     * argument module string - The name of the module (including subpath).
     */
    var loadModule = function(module) {
    
    	var elements = module.split("/");
    	var moduleName = elements[elements.length - 1];
    	var moduleFolder =  __dirname + "/../modules/" + module;
    
    	if (defaultModules.indexOf(moduleName) !== -1) {
    		moduleFolder =  __dirname + "/../modules/default/" + module;
    	}
    
    	var helperPath = moduleFolder + "/node_helper.js";
    
    	var loadModule = true;
    	try {
    		fs.accessSync(helperPath, fs.R_OK);
    	} catch (e) {
    		loadModule = false;
    		console.log("No helper found for module: " + moduleName + ".");
    	}
    
    	if (loadModule) {
    		var Module = require(helperPath);
    		var m = new Module();
    
    		if (m.requiresVersion) {
    			console.log("Check MagicMirror version for node helper '" + moduleName + "' - Minimum version:  " + m.requiresVersion + " - Current version: " + global.version);
    			if (cmpVersions(global.version, m.requiresVersion) >= 0) {
    				console.log("Version is ok!");
    			} else {
    				console.log("Version is incorrect. Skip module: '" + moduleName + "'");
    				return;
    			}
    		}
    
    		m.setName(moduleName);
    		m.setPath(path.resolve(moduleFolder));
    		nodeHelpers.push(m);
    	}
    };
    
    /* loadModules(modules)
     * Loads all modules.
     *
     * argument module string - The name of the module (including subpath).
     */
    var loadModules = function(modules) {
    	console.log("Loading module helpers ...");
    
    	for (var m in modules) {
    		loadModule(modules[m]);
    	}
    
    	console.log("All module helpers loaded.");
    };
    
    /* cmpVersions(a,b)
     * Compare two symantic version numbers and return the difference.
     *
     * argument a string - Version number a.
     * argument a string - Version number b.
     */
    function cmpVersions(a, b) {
    	var i, diff;
    	var regExStrip0 = /(\.0+)+$/;
    	var segmentsA = a.replace(regExStrip0, "").split(".");
    	var segmentsB = b.replace(regExStrip0, "").split(".");
    	var l = Math.min(segmentsA.length, segmentsB.length);
    
    	for (i = 0; i < l; i++) {
    		diff = parseInt(segmentsA[i], 10) - parseInt(segmentsB[i], 10);
    		if (diff) {
    			return diff;
    		}
    	}
    	return segmentsA.length - segmentsB.length;
    }
    
    /* start(callback)
     * This methods starts the core app.
     * It loads the config, then it loads all modules.
     * When it"s done it executs the callback with the config as argument.
     *
     * argument callback function - The callback function.
     */
    this.start = function(callback) {
    
    	loadConfig(function(c) {
    		config = c;
    
    		var modules = [];
    
    		for (var m in config.modules) {
    			var module = config.modules[m];
    			if (modules.indexOf(module.module) === -1 && !module.disabled) {
    				modules.push(module.module);
    			}
    			}
    
    		});
    	});
    };
    

    };

    module.exports = new App();

    i sobstitute this file that is in the js directory, the file is app.js, this is from the older version of magic mirror that casually i have saved but with this it works…
    i don’t know why but with the newer version of this file modules arent recognised…



  • i don’t know why but code is divided into blocks , copy all the text i have written minus my last comments at the end



  • This post is deleted!


  • Hey, @robertoOk or anybody other. I got today exact the same problem. After updating to 2.1.1 my mm start whit a black screen. And npm write the same like @robertoOk write in his first post. If I cut this module out at the config.js. mm starts correctly.

    Greets gismo



  • Ok, now I give up… :-D

    Can maybe someone whit some more coding experince help me to solve this problem??

    Greets gismo



  • I have the same problem since two days. I tried some stuff but nothing worked.



  • @fabrang i sobstitute the app.js file code with the older version and works



  • @gismo2006 i sobstitute the app.js file code with the older version and works


Log in to reply
 

Looks like your connection to MagicMirror Forum was lost, please wait while we try to reconnect.