• 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 258.1k 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.
  • 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
                    • S Away
                      sdetweil @DarkV
                      last edited by Apr 7, 2025, 3:28 PM

                      @DarkV yes i understand

                      lets restore the updatenotification module file

                      cd ~/MagicMirror
                      git checkout modules/default/updatenotification/updatenotification.js
                      

                      then lets edit config.js to disable the module

                       {
                            module:"updatenotification",
                            position:"top_bar",
                            disabled:true
                        },
                      

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

                      D 1 Reply Last reply Apr 8, 2025, 8:47 AM Reply Quote 0
                      • 1
                      • 2
                      • 26
                      • 27
                      • 28
                      • 29
                      • 30
                      • 28 / 30
                      28 / 30
                      • First post
                        278/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