MagicMirror² is an open source modular smart mirror platform. With a growing list of installable modules, the MagicMirror² allows you to convert your hallway or bathroom mirror into your personal assistant.
var 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, is "localhost"
port: 8081,
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"], // 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"],
language: "id",
timeFormat: 24,
units: "metric",
modules: [
{
module: "alert",
},
/*{
module: "updatenotification",
position: "top_bar"
},*/
{
module: "clock",
position: "top_left",
config: {
// The config property is optional.
// See 'Configuration options' for more information.
timezone: "Asia/Jakarta"
}
},
{
module: "calendar",
header: "Tanggal Penting",
position: "top_left",
config: {
colored: true,
coloredSymbolOnly: true,
dateFormat:"MMM Do",
fullDayEventDateFormat:"MMM Do",
timeFormat:"absolute",
urgency:"3",
calendars: [
{
symbol: "calendar-check",
url: "https://calendar.google.com/calendar/ical/id.indonesian%23holiday%40group.v.calendar.google.com/public/basic.ics",
maximumEntries:3,
color:"#DC143C"
},
]
}
},
{
module: "calendar",
header: "Agenda KPKNL Medan",
position: "top_left",
config: {
colored: true,
coloredSymbolOnly: true,
dateFormat:"MMM Do",
fullDayEventDateFormat:"MMM Do",
timeFormat:"relative",
urgency:"3",
calendars: [
{
symbol: "calendar-check",
url: "https://calendar.google.com/calendar/ical/kpknlmedan%40gmail.com/public/basic.ics",
maximumEntries:10,
color:"#3cb371"
},
{
symbol: "hammer",
url: "https://calendar.google.com/calendar/ical/unvqu8ub0pj9u3b9qjfg3k4h3s%40group.calendar.google.com/public/basic.ics",
maximumEntries:10,
color:"#ffa500"
}
]
}
},
{
module: "compliments",
position: "lower_third",
config: {
compliments: {
anytime: [
"Selamat Datang di KPKNL Medan",
"Medan KEREN",
"Hai Manis",
"Jangan Lupa Absen Ya",
"Semangat Ya Kerjanya"
]
}
}
},
{
module: "currentweather",
position: "top_right",
config: {
location: "Medan",
locationID: "1214520", //ID from http://bulk.openweathermap.org/sample/; unzip the gz file and find your city
appid: "143121a9e22e371cf9db2e9fa42349b0"
}
},
{
module: 'MMM-PrayerTime',
position: 'top_left', // This can be any of the regions. Best result is in the top_left/top_right.
header: "Jadwal Sholat",
config: {
apiVersion: '1.0', // please, leave unchanged. reserved for future use.
lat: 3.34446, // latitude of your position (city)
lon: 98.42113, // longitude of your position (city)
timezone: "Asia/Jakarta", // please refer to http://php.net/manual/en/timezones.php
timeFormat: 24,
method: 5,
playAdzan: ['fajr', 'dhuhr', 'asr', 'maghrib', 'isha'],
notDisplayed: ['midnight', 'sunset'],
useUpdateInterval: true,
updateInterval: 86400 * 1000, // How often do you want to fetch new praying time? (milliseconds)
animationSpeed: 2.5 * 1000, // Speed of the update animation. (milliseconds)
language: 'en',
showAdzanAlert: true,
showTomorrow: true,
alertTimer: 15000
}
},
{
module: "MMM-iFrame-GSlides",
position: "middle_center", // This can be any of the regions.
config: {
// See 'Configuration options' for more information.
url: "https://docs.google.com/presentation/d/e/2PACX-1vS-jko4Dc_BAa4EJ16_fW06Htm1hFxsTaSWNyQ-ySKcBcJVelaggFj9ZeQrkxfVOo-qdOZFqJukXy3L/embed?start=true&loop=true&delayms=15000&rm=minimal", // enter the embed url to your Google Slides.
RefreshInterval: 1440 * 60 * 1000, // Refreshes Page every 5 minutes.
width: "900px", // Optional. Default: "full". The "full" value will look at screen size and match for full screen."
height: "350px" //Optional. Default: "full" The "full" value will look at screen size and match for full screen."
}
},
{
module: "MMM-GoogleAssistant",
position: "top_right",
config: {
maxWidth: "100%",
header: "Say Hello Google",
publishKey: "pub-c-0c4f95ad-b031-4ec2-a1b5-d8b2489f6a49",
subscribeKey: "sub-c-957d9954-680b-11e9-a1d6-2a8c316da507",
updateDelay: 500
}
},
{
module: "MMM-SimpleLogo",
position: "bottom_left",
config: {
text: "DENAH KPKNL MEDAN",
width: "750px",
position: "left",
fileUrl: "modules/MMM-SimpleLogo/public/DenahKPKNL5.png"
}
},
{
module: "newsfeed",
position: "top_bar",
config: {
feeds: [
{
title: "Republika",
url: "https://www.republika.co.id/rss"
},
{
title: "Detik",
url: "http://rss.detik.com/index.php/detikcom"
}
],
showSourceTitle: true,
showPublishDate: true
}
},
{
module: "MMM-Remote-Control",
config: {
customCommand: {},
customMenu: "custom_menu.json",
showModuleApiMenu: true,
apiKey: ""
}
},
/*{
module: 'MMM-ModuleScheduler',
config: {
notification_schedule: [
// TURN THE MONITOR/SCREEN ON AT 07:30 EVERY DAY
{notification: 'REMOTE_ACTION', schedule: '30 13 * * *', payload: {action: "MONITORON"}},
// TURN THE MONITOR/SCREEN OFF AT 20:00 EVERY DAY
{notification: 'REMOTE_ACTION', schedule: '30 12 * * *', payload: {action: "MONITOROFF"}},
// RESTART THE MAGICMIRROR PROCESS AT 2am EVERY SUNDAY
{notification: 'REMOTE_ACTION', schedule: '32 17 * * *', payload: {action: "SHUTDOWN"}}
]
}
},*/
]
};
/ DO NOT EDIT THE LINE BELOW /
if (typeof module !== "undefined") {module.exports = config;}
Electron Version: 1.7.6
Node JS Version: 10.15.3
Magic Mirror version : 2.7.1
My Magic Mirror suddenly blank screen after few minutes, logs: 1|mm | > magicmirror@2.7.1 start /home/pi/MagicMirror 1|mm | > sh run-start.sh 1|mm | Starting MagicMirror: v2.7.1 1|mm | Loading config ... 1|mm | Loading module helpers ... 1|mm | No helper found for module: alert. 1|mm | No helper found for module: clock. 1|mm | Initializing new module helper ... 1|mm | Module helper loaded: calendar 1|mm | No helper found for module: compliments. 1|mm | No helper found for module: currentweather. 1|mm | Initializing new module helper ... 1|mm | Module helper loaded: MMM-PrayerTime 1|mm | No helper found for module: MMM-iFrame-GSlides. 1|mm | Initializing new module helper ... 1|mm | Module helper loaded: MMM-GoogleAssistant 1|mm | No helper found for module: MMM-SimpleLogo. 1|mm | Initializing new module helper ... 1|mm | Module helper loaded: newsfeed 1|mm | Initializing new module helper ... 1|mm | Module helper loaded: MMM-Remote-Control 1|mm | All module helpers loaded. 1|mm | Starting server on port 8081 ... 1|mm | Server started ... 1|mm | Connecting socket for: calendar 1|mm | Starting node helper for: calendar 1|mm | Connecting socket for: MMM-PrayerTime 1|mm | Starting node_helper.js for MMM-PrayerTime. 1|mm | Connecting socket for: MMM-GoogleAssistant 1|mm | Starting module helper: MMM-GoogleAssistant 1|mm | Connecting socket for: newsfeed 1|mm | Starting module: newsfeed 1|mm | Connecting socket for: MMM-Remote-Control 1|mm | Starting node helper for: MMM-Remote-Control 1|mm | Sockets connected & modules started ... 1|mm | Launching application. 1|mm | ERROR! Could not find main module js file for json 1|mm | Create new calendar fetcher for url: https://calendar.google.com/calendar/ical/kpknlmedan%40gmail.com/public/basic.ics - Interval: 300000 1|mm | Create new calendar fetcher for url: https://calendar.google.com/calendar/ical/unvqu8ub0pj9u3b9qjfg3k4h3s%40group.calendar.google.com/public/basic.ics - Interval: 300000 1|mm | Create new calendar fetcher for url: https://calendar.google.com/calendar/ical/id.indonesian%23holiday%40group.v.calendar.google.com/public/basic.ics - Interval: 300000 1|mm | [2649:0729/081514.601887:FATAL:memory.cc(22)] Out of memory. size=166342656 1|mm | #0 0x0000012ae7dc
1|mm | #1 0x000001298126
1|mm | #2 0x0000013055c8
1|mm | #3 0x0000008e1934
1|mm | #4 0x0000008e1658
1|mm | #5 0x000001af7b5c
1|mm | #6 0x0000019c8e86
1|mm | #7 0x000001b49218
1|mm | #8 0x000001af3e00
1|mm | #9 0x0000019d112e
1|mm | #10 0x0000019d1322
1|mm | #11 0x0000019d1412
1|mm | #12 0x000001a17282
1|mm | #13 0x000001a31e16
1|mm | #14 0x000001a522e8
1|mm | #15 0x00000194d7e4
1|mm | #16 0x00000194d3fe
1|mm | #17 0x00000192a06e
1|mm | #18 0x000001a5592c
1|mm | #19 0x00000024ad7a
1|mm | #20 0x0000002605f0
1|mm | #21 0x0000001c3ff8
1|mm | #22 0x0000001c3e90
1|mm | #23 0x000000269342
1|mm | #24 0x000000265024
1|mm | #25 0x0000002649b2
1|mm | #26 0x0000002647b4
1|mm | #27 0x00000023a496
1|mm | #28 0x000001c3db68
1|mm | #29 0x000001c3d07c
1|mm | #30 0x000001290748
1|mm | #31 0x0000012d228c
and here my config.js: / Magic Mirror Config Sample
*/
var 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, is "localhost" port: 8081, ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"], // 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"],
};
/ DO NOT EDIT THE LINE BELOW / if (typeof module !== "undefined") {module.exports = config;}
Electron Version: 1.7.6 Node JS Version: 10.15.3 Magic Mirror version : 2.7.1