• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

Are you tired of editing config.js, or have trouble doing it, see my new module

Scheduled Pinned Locked Moved Utilities
293 Posts 28 Posters 254.7k Views 30 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Away
    sdetweil @DarkV
    last edited by Apr 4, 2025, 1:01 PM

    @DarkV mmm-config requires MagicMirror version 2.28 or higher

    also, you have some syntax error around line 122 in config.js

    pm2 flush to empty the logs

    and see what hsppens after you fix that config.js error

    Sam

    How to add modules

    learning how to use browser developers window for css changes

    D 1 Reply Last reply Apr 4, 2025, 2:26 PM Reply Quote 0
    • D Offline
      DarkV @sdetweil
      last edited by sdetweil Apr 4, 2025, 2:51 PM Apr 4, 2025, 2:26 PM

      @sdetweil, I’m sorry. Can you please highlight where I have the error? I am considering reinstalling it as I cannot even update Magic Mirror. I want to back up Config.js, but if it contains faults, then I will be back to square one.

      /*
      * MagicMirror² Config Sample
       *
       * By Michael Teeuw https://michaelteeuw.nl
       * MIT Licensed.
       *
       * For more information on how you can configure this file
       * see https://docs.magicmirror.builders/configuration/introduction.html
       * and https://docs.magicmirror.builders/modules/configuration.html
       */
      let config = {
      	address: "localhost", 	// Address to listen on, can be:
      							// - "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 or empty, is "localhost"
      	port: 8080,
      	basePath: "/", 	// The URL path where MagicMirror² is hosted. If you are using a Reverse proxy
      					// you must set the sub path here. basePath must end with a /
      	ipWhitelist: [], 	// Set [] to allow all IP addresses
      															// or add a specific IPv4 of 192.168.2.49 :
      															// ["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"],
      
      	useHttps: false, 		// Support HTTPS or not, default "false" will use HTTP
      	httpsPrivateKey: "", 	// HTTPS private key path, only require when useHttps is true
      	httpsCertificate: "", 	// HTTPS Certificate path, only require when useHttps is true
      
      	language: "en",
      	locale: "en-US",
      	logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging
      	timeFormat: 24,
      	units: "metric",
      	// serverOnly:  true/false/"local" ,
      	// local for armv6l processors, default
      	//   starts serveronly and then starts chrome browser
      	// false, default for all NON-armv6l devices
      	// true, force serveronly mode, because you want to.. no UI on this device
      
      	modules: [
      	{
      	module: 'MMM-MovieListings',
                                      position: 'bottom_center',   // This can be any of the regions. Best results in left or$
                                      config: {
      					apiKey: '',
      					region: 'GB',
      					language: 'en-UK',
      					interface: 'poster', //'list', 'poster', 'detailed'
      					includeMoviePlot: false,
      					maxPlotLength: 198,
      					header: 'Kinofilme',
      					moviesPerPage: 0,
      					refreshInterval: 1000 * 60 * 60 * 24, //Once a day
      					baseUrl: 'https://api.themoviedb.org/3/movie/now_playing',
      					animationSpeed: 2.5 * 1000,
      					pageChangeInterval: 35 * 1000
      	}
      },
      	
      {
              module: 'MMM-Globe',
      	position: 'bottom_left',
      	config: {
      		style: 'geoColor',
      		imageSize: 300,
      		ownImagePath:'',
      		updateInterval: 10*60*1000
              }
          },
      
      {
        module: 'MMM-Tools',
        position: 'bottom_right',
        config: {
          refresh: 1000 * 5,
          containerSize: null,
          itemSize: null
        }
      },
      
      
               {
          module: "MMM-EyeCandy",
          position: "top_center",
          config: {
              maxWidth: "75%",       // Sizes the images. Retains aspect ratio.
              style: '1',            // Style number or use ownImagePath to override style
              ownImagePath: '',      // 'modules/MMM-EyeCandy/pix/name-graphics-lisa-596441.jpg'
              }
              },
      
      
      
      
      		{
      			module: "alert",
      		},
      		{
      			module: "updatenotification",
      			position: "top_bar"
      		},
      		{
      			module: "clock",
      			position: "top_right"
      		},
      		{
      			module: "calendar",
      			header: "UK Holidays",
      			position: "top_right",
      			config: {
      				calendars: [
      					{
      						symbol: "calendar-check-o ",
                              url: "https://www.calendarlabs.com/ical-calendar/ics/75/UK_Holidays.ics"
      					}
      				]
      			}
      		},
      		{
      			module: "compliments",
      			position: "top_bar"
      		},
      		{
      			module: "MMM-OpenmapWeather",
      		position: "top_left",	// This can be any of the regions. Best results in left or right regions.
      		header: "Current Weather", //Location is the default value if header is empty or not defined.
      		config: {
      			// See 'Configuration options' for more information.
      			location: "CROYDON,LONDON",
      			locationID: "2651817", //Location ID from http://openweathermap.org/help/city_list.txt
      			appid: "",  //openweathermap.org API key
            			colorIcon: true
      			}
      		},
      
                      {
      		module:"MMM-Config",
      		position:"top_left", 
      			// the QR code (if requested) will appear here
      		config:{
                              showQR: true
      		}
      	        },
      
      
      		{
      			module: "weather",
      			position: "top_left",
      			header: "Weather Forecast",
      			config: {
      				weatherProvider: "openweathermap",
      				type: "forecast",
      				location: "London",
      				locationID: "2651817", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
      				apiKey: ""
      			}
      		},
      		{
      			module: "newsfeed",
      			position: "bottom_bar",
      			config: {
      				feeds: [
      					{
      						title: "BBC UK News",
      						url: "http://feeds.bbci.co.uk/news/uk/rss.xml"
      					}
      				],
      				showSourceTitle: true,
      				showPublishDate: true,
      				broadcastNewsFeeds: true,
      				broadcastNewsUpdates: true
      			}
      		},
      	]
      };
      
      /*************** DO NOT EDIT THE LINE BELOW ***************/
      if (typeof module !== "undefined") {module.exports = config;}
      
      S 1 Reply Last reply Apr 4, 2025, 2:55 PM Reply Quote 0
      • S Away
        sdetweil @DarkV
        last edited by Apr 4, 2025, 2:55 PM

        @DarkV i do not SEE anything, but i am away from my computer all day, driving.

        so i cannot run it thru the

        cd ~/MagicMirror 
        npm run config:check
        

        command

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        D 1 Reply Last reply Apr 4, 2025, 3:09 PM Reply Quote 0
        • D Offline
          DarkV @sdetweil
          last edited by Apr 4, 2025, 3:09 PM

          @sdetweil said in Are you tired of editing config.js, or have trouble doing it, see my new module:

          npm run config:check

          [04.04.2025 16:09.03.683] [INFO] Checking file… /home/junior/MagicMirror/config/config.js
          [04.04.2025 16:09.03.781] [INFO] Your configuration file doesn’t contain syntax errors :)
          junior@MAGIC-MIRROR:~/MagicMirror $

          S 1 Reply Last reply Apr 4, 2025, 8:50 PM Reply Quote 0
          • S Away
            sdetweil @DarkV
            last edited by Apr 4, 2025, 8:50 PM

            @DarkV ok
            now do

            cd ~/MagicMirror/MMM-Config
            ./test-convert.sh override
            

            you should get one message

            completed
            

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            D 1 Reply Last reply Apr 6, 2025, 10:14 AM Reply Quote 0
            • D Offline
              DarkV @sdetweil
              last edited by DarkV Apr 6, 2025, 10:15 AM Apr 6, 2025, 10:14 AM

              @sdetweil
              Results
              junior@MAGIC-MIRROR:~/MagicMirror/modules/MMM-Config $ ./test-convert.sh override
              -bash: ./test-convert.sh: No such file or directory
              junior@MAGIC-MIRROR:~/MagicMirror/modules/MMM-Config $

              I used a fresh SD card for the reinstallation, but some of her modules are incompatible with the new setup. Consequently, my wife has firmly decided to stick with the current version until her modules stop functioning. Unfortunately, since one of the modules doesn’t work with the old MagicMirror version, I’m at an impasse. It is a pity, I wanted this as due to dyslexia, this would have been perfect for my situation

              S 1 Reply Last reply Apr 6, 2025, 11:54 AM Reply Quote 0
              • S Away
                sdetweil @DarkV
                last edited by Apr 6, 2025, 11:54 AM

                @DarkV ok,my fault

                cd ~/MagicMirror/modules/MMM-Config
                ./test_convert.sh  override
                

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                D 1 Reply Last reply Apr 6, 2025, 1:40 PM Reply Quote 0
                • D Offline
                  DarkV @sdetweil
                  last edited by Apr 6, 2025, 1:40 PM

                  @sdetweil said in Are you tired of editing config.js, or have trouble doing it, see my new module:

                  ./test_convert.sh override

                  junior@MAGIC-MIRROR:~/MagicMirror/modules/MMM-Config $ ./test_convert.sh overri de
                  --------------------MMM-Config
                  module updatenotification-defaults has an error in the construction of its defau lts section
                  the error line is disabled: true;
                  please change it to the literal value of the referenced variable
                  and restart MagicMirror
                  --------------------MMM-Config
                  junior@MAGIC-MIRROR:~/MagicMirror/modules/MMM-Config $

                  S 1 Reply Last reply Apr 6, 2025, 1:50 PM Reply Quote 0
                  • S Away
                    sdetweil @DarkV
                    last edited by Apr 6, 2025, 1:50 PM

                    @DarkV can you show the top of the modules/defaul/updatenotification/updatenotification.js
                    make sure the defaults section is shown

                    you know you never edit any of the MagicMirror source or module source

                    all config goes in config/config.js and all css goes in css/custom.css

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

                    D 1 Reply Last reply Apr 7, 2025, 1:12 PM Reply Quote 0
                    • D Offline
                      DarkV @sdetweil
                      last edited by Apr 7, 2025, 1:12 PM

                      @sdetweil

                      My bad,iI was trying to dissable the “Update available” banner at the top of mirror

                      /* MagicMirror²

                      • Module: UpdateNotification

                      • By Michael Teeuw https://michaelteeuw.nl

                      • MIT Licensed.
                        */
                        Module.register(“updatenotification”, {
                        defaults: {
                        updateInterval: 10 * 60 * 1000, // every 10 minutes
                        refreshInterval: 24 * 60 * 60 * 1000, // one day
                        ignoreModules: [],
                        sendUpdatesNotifications: false,
                        updates: [],
                        updateTimeout: 2 * 60 * 1000, // max update duration
                        updateAutorestart: false // autoRestart MM when update done ?
                        disabled: true;
                        },

                        suspended: false,
                        moduleList: {},
                        needRestart: false,
                        updates: {},

                        start () {
                        Log.info(Starting module: ${this.name});
                        this.addFilters();
                        setInterval(() => {
                        this.moduleList = {};
                        this.updateDom(2);
                        }, this.config.refreshInterval);
                        },

                        suspend () {
                        this.suspended = true;
                        },

                        resume () {
                        this.suspended = false;
                        this.updateDom(2);
                        },

                        notificationReceived (notification) {
                        switch (notification) {
                        case “DOM_OBJECTS_CREATED”:
                        this.sendSocketNotification(“CONFIG”, this.config);
                        this.sendSocketNotification(“MODULES”, Object.keys(Module.definitions));
                        break;
                        case “SCAN_UPDATES”:
                        this.sendSocketNotification(“SCAN_UPDATES”);
                        break;
                        }
                        },

                        socketNotificationReceived (notification, payload) {
                        switch (notification) {
                        case “REPO_STATUS”:
                        this.updateUI(payload);
                        break;
                        case “UPDATES”:
                        this.sendNotification(“UPDATES”, payload);
                        break;
                        case “UPDATE_STATUS”:
                        this.updatesNotifier(payload);
                        break;
                        }
                        },

                        getStyles () {
                        return [${this.name}.css];
                        },

                        getTemplate () {
                        return ${this.name}.njk;
                        },

                        getTemplateData () {
                        return { moduleList: this.moduleList, updatesList: this.updates, suspended: this.suspended, needRestart: this.needRestart };
                        },

                        updateUI (payload) {
                        if (payload && payload.behind > 0) {
                        // if we haven’t seen info for this module
                        if (this.moduleList[payload.module] === undefined) {
                        // save it
                        this.moduleList[payload.module] = payload;
                        this.updateDom(2);
                        }
                        } else if (payload && payload.behind === 0) {
                        // if the module WAS in the list, but shouldn’t be
                        if (this.moduleList[payload.module] !== undefined) {
                        // remove it
                        delete this.moduleList[payload.module];
                        this.updateDom(2);
                        }
                        }
                        },

                        addFilters () {
                        this.nunjucksEnvironment().addFilter(“diffLink”, (text, status) => {
                        if (status.module !== “MagicMirror”) {
                        return text;
                        }

                         	const localRef = status.hash;
                         	const remoteRef = status.tracking.replace(/.*\//, "");
                         	return `<a href="https://github.com/MichMich/MagicMirror/compare/${localRef}...${remoteRef}" class="xsmall dimmed difflink" target="_blank">${text}</a>`;
                         });
                        

                        },

                        updatesNotifier (payload, done = true) {
                        if (this.updates[payload.name] === undefined) {
                        this.updates[payload.name] = {
                        name: payload.name,

                      S 1 Reply Last reply Apr 7, 2025, 3:28 PM Reply Quote 0
                      • 1
                      • 2
                      • 26
                      • 27
                      • 28
                      • 29
                      • 30
                      • 28 / 30
                      28 / 30
                      • First post
                        277/293
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy