text: /* Magic Mirror Config
   *
   * By Michael Teeuw http://michaelteeuw.nl
   * Modified by Ron Record http://ronrecord.com
   * MIT Licensed.
   *
   * For more information how you can configurate this file
   * See https://github.com/MichMich/MagicMirror#configuration
   *
   */
  
  var config = {
  //	address: "localhost",
  	address: "0.0.0.0", // 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, is "localhost"
  	port: 8080,
      // Set [] to allow all IP addresses
  	// 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"],
      ipWhitelist: [
          "0.0.0.0",
          "127.0.0.1",
          "AA.A.A.AA", // Mac Mini
          "BB.B.B.BBB", // iPad
          "CC.C.C.CC", // Mac Pro
          "DD.D.D.DDD", // Mac Pro over Tunnelblick
          "EE.E.E.EE", // Roon Core
          "FF.F.F.FF", // Mac Pro
          "GG.G.G.GG", // Ropieee
          "MM.M.M.MM", // Raspberry Pi MagicMirror
          "HH.H.H.HH", // Raspberry Pi 400
          "II.I.I.II", // iPad Air
          "JJ.J.J.JJ", // iPhone 12 Mini
          "::ffff:127.0.0.1",
          "::1",
      ],
  
  	customCss: "css/custom-mirrorcommand.css",
      language: "en",
  	timeFormat: 12,
  	units: "imperial",
  	// 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
  	serverOnly:  true,
  	
  	electronOptions: {
          x: 0, // __X_OFFSET__ Do Not Remove
          y: 0, // __Y_OFFSET__ Do Not Remove
      },
  
      modules: [
  		{
  			module: "alert",
  		},
  		{
  			module: "updatenotification",
  			position: "top_bar"
  		},
          {
              module: 'MMM-Remote-Control',
              config: {
                  apiKey: 'xxx_Remote-Control-API-Key_xxxxx',
                  customCommand: {
                      shutdownCommand: '/usr/local/bin/myshutdown',
                      rebootCommand: '/usr/local/bin/myreboot',
                      monitorOnCommand: 'vcgencmd display_power 1',
                      monitorOffCommand: 'vcgencmd display_power 0',
                      screenshotCommand: '/usr/local/bin/mirror screenshot',
                      rotateScreenRight: '/usr/local/bin/mirror rotate right',
                      rotateScreenLeft: '/usr/local/bin/mirror rotate left',
                      rotateScreenNormal: '/usr/local/bin/mirror rotate normal',
                      rotateScreenInverted: '/usr/local/bin/mirror rotate inverted',
                      playVideo: '/usr/local/bin/mirror playvideo',
                      pauseVideo: '/usr/local/bin/mirror pausevideo',
                      replayVideo: '/usr/local/bin/mirror replayvideo',
                      nextVideo: '/usr/local/bin/mirror nextvideo',
                      hideVideo: '/usr/local/bin/mirror hidevideo',
                      showVideo: '/usr/local/bin/mirror showvideo',
                      // Shell command to return status of monitor,
                      // must return either "HDMI" or "true" if screen is on
                      // "TV is Off" or "false" if it is off to be recognized
                      // monitorStatusCommand: '/usr/local/bin/mirror screen status',
                  },
                  showModuleApiMenu: true,
                  secureEndpoints: true,
                  customMenu: "custom_menu.json",
                  // classes: {} // Optional, See "Custom Classes" below
              }
          },
          {
              module: "clock",
              position: "upper_third",
              config: {
                  dateFormat: "dddd, LLL",
                  displayType: "analog",
                  analogFace: "face-006",
                  analogSize: "200px",
                  displaySeconds: "true",
                  secondsColor: "#00FFFF",
                  timeFormat: "12",
                  showPeriod: "true",
                  showDate: "true",
                  clockBold: "false",
                  analogPlacement: "top",
                  analogShowDate: "top",
              }
          },
  		{
  			module: "calendar",
  			header: "Calendar Events",
  			position: "top_left",
  			config: {
                  colored: true,
                  maximumNumberOfDays: 10,
                  maximumEntries: 20,
                  showLocation: true,
  				calendars: [
  					{
  						symbol: "calendar",
                          color: '#73FF33',
  						url: "http://localhost:8080/modules/default/calendar/calendars/home.ics"
                      },
  				]
  			}
  		},
          {
  		    module: "weather",
  		    position: "top_right",
              header: "Current Weather",
  		    config: {
               type: 'current',
               location: "Santa Cruz,United States",
               locationID: "5393052",
               units: "imperial",
               apiKey: "xx_OpenWeather-App-ID_xxxxxxxxxx"
  		    }
  	    },
          {
              module: "weather",
              position: "top_right",
              header: "Weather Forecast",
              config: {
  			    type: 'forecast',
                  location: "Santa Cruz,United States",
                  locationID: "5393052",
                  units: "imperial",
                  showRainAmount: "true",
                  colored: "true",
                  apiKey: "xx_OpenWeather-App-ID_xxxxxxxxxx"
              }
          },
  		{
  			module: "newsfeed",
  			position: "top_bar",
          //  classes: "daytime",
  			config: {
  				feeds: [
  				    {
  					    title: "New York Times",
  					    url: "http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml"
  				    },
  				    {
  					    title: "Washington Post",
  					    url: "http://feeds.washingtonpost.com/rss/national"
  				    },
  				    {
  					    title: "Mercury News",
  					    url: "https://www.mercurynews.com/feed"
  				    },
  				],
  				showSourceTitle: true,
  				showPublishDate: true,
  				broadcastNewsFeeds: true,
  				broadcastNewsUpdates: true
  			}
  		},
          {
              module: 'MMM-Tools',
              position: 'bottom_left',
              header: "System Info",
              config: {
                refresh: 1000 * 5,
                containerSize: null,
                itemSize: null,
                MM: {
                  displayMM: true,
                  orderMM: 0
                },
                OS: {
                  displayOs: true,
                  orderOs: 1
                },
                CPU: {
                  displayUsage: true,
                  orderUsage: 4,
                  displayTemp: true,
                  celciusTemp: true,
                  orderTemp: 7,
                  displayType: true,
                  orderType: 2
                },
                RAM: {
                  displayRam: true,
                  orderRam: 5
                },
                STORAGE: {
                  displayStorage: true,
                  orderStorage: 6,
                  partitionExclude : []
                },
                NETWORK: {
                  displayNetwork: true,
                  orderNetwork: 3,
                  nativeNetwork: false,
                  displayDefaultNetwork: true
                },
                UPTIME: {
                  displayUptime: true,
                  useMagicMirror: true,
                  orderUptime: 8,
                  displayRecord: true,
                  orderRecord: 9
                },
                WARNING: {
                  enableWarning: false,
                  interval: 1000 * 60 * 5,
                  check : {
                    CPU_TEMP : 65,
                    CPU_USAGE : 75,
                    STORAGE_USED : 80,
                    MEMORY_USED : 80,
                  }
                }
              }
          },
          {
              module: 'MMM-stocks',
              position: 'bottom_bar',
              config: {
                apiKey: 'xxxxx_Stocks-API-Key_xxxxxxxxxxxxx',
                crypto: 'FILUSDT,ADAUSDT',
                separator: '&nbsp;&nbsp;•&nbsp;&nbsp;', // separator between stocks
                stocks: 'CND,ETHO,MIGFX,MSEGX,TRBCX,CGC,AAPL,JOBY', // stock symbols
                updateInterval: 1000000 // update interval in milliseconds (16:40)
              }
          },
          {
              module: "mmm-hue-lights",
              position: "middle_center",
              header: 'Hue Lights',
              config: {
                  bridgeIp: "xxxxxxxxxx_Hue-Hub-IP_xxxxxxxxxxxxxxxx",
                  user: "xxxxxxxxxx_Hue-Hub-User_xxxxxxxxxxxxxxxx",
                  // If you've added a Hue API user and set it in mirrorkeys
                  // then replace the above setting of user with one of these
                  // and rerun showkeys.
                  // user: "xxxxxxxxx_Hue-Hub-User-Two_xxxxxxxxxxxx",
                  // user: "xxxxxxxxx_Hue-Hub-User-Three_xxxxxxxxxx",
              }
          },
          {
              module: 'MMM-Solar',
              position: "middle_center",
  	        config: {
  		        apiKey: "xxxxxx_Solar-API-Key_xxxxxxxxxxx",
  		        userId: "Solar-USER-ID",
  		        systemId: "Solar-System-ID",
  		        // basicHeader: "true",
  	        }
          },
          {
              module: 'MMM-MacAddressScan',
              position: "bottom_center",
              header: "ARP Scan - Discovered Devices",
              config: {
                  showLastSeen: false,
                  showLastSeenWhenOffline: false,
                  sort: false,
                  colored: true,
                  showDeviceColumns: false,
                  coloredState: true,
                  showIP: true,
                  showUnknown: false,
                  showOffline: true,
                  keepAlive: 900,
                  updateInterval: 60,
                  // residents: ["iPhone 12 Mini"],
                  // occupiedCMD: {
                  //     notification: 'REMOTE_ACTION',
                  //     payload: {
                  //         action: 'MONITORON'
                  //     }
                  // },
                  // vacantCMD  : {
                  //     notification: 'REMOTE_ACTION',
                  //     payload: {
                  //         action: 'MONITOROFF'
                  //     }
                  // },
                  // DO NOT REMOVE __ARP_SCAN_DEVICES__
                  devices: [],
              },
          },
          {
              module: 'MMM-BackgroundSlideshow',
              position: 'fullscreen_below',
              classes: 'scheduler',
              config: {
                  imagePaths: [
                      '/usr/local/MirrorCommand/pics/Fractals/',
                  ],
                  slideshowSpeed: 15000, // 15 seconds
                  transitionImages: true,
                  randomizeImageOrder: true,
                  recursiveSubDirectories: true,
                  resizeImages: true,
                  maxWidth: __WIDTH__, // __SET_MAX_WIDTH__ Do Not Remove
                  maxHeight: __HEIGHT__, // __SET_MAX_HEIGHT__ Do Not Remove
                  transitions: ['opacity', 'slideFromRight', 'slideFromLeft', 'slideFromTopLeft', 'slideFromTopRight', 'slideFromBottomLeft', 'slideFromBottomRight', 'flipX', 'flipY'],
                  // DISPLAY THE SLIDE SHOW BETWEEN 6PM and 8PM then again between 10PM and Midnight
                  module_schedule: [
                      {from: '0 18 * * *', to:   '0 20 * * *'},
                      {from: '0 22 * * *', to:   '59 23 * * *'}
                  ]
              }
          },
  	]
  };
  
  /*************** DO NOT EDIT THE LINE BELOW ***************/
  if (typeof module !== "undefined") {module.exports = config;}
  