Hello,
I am trying to amke a magicmirror for my wife - this was supposed to be an easy Christmas present. I am pretty well versed with Arduino and Pis, so I thought it will be straightforward. But, reality was very different.
I am getting a blank screen. My output from npm start in MagicMirror directory is:
pi@magicmirror:~/MagicMirror $ npm start
> magicmirror@2.9.0 start /home/pi/MagicMirror
> sh run-start.sh
Starting MagicMirror: v2.9.0
Loading config ...
Loading module helpers ...
No helper found for module: alert.
Initializing new module helper ...
Module helper loaded: updatenotification
WARNING! Could not load config file. Starting with default configuration. Error found: Error: Cannot find module 'googleapis'
Loading module helpers ...
No helper found for module: alert.
Initializing new module helper ...
Module helper loaded: updatenotification
App threw an error during load
Error: Cannot find module 'googleapis'
at Module._resolveFilename (internal/modules/cjs/loader.js:602:15)
at Function.Module._resolveFilename (/home/pi/MagicMirror/node_modules/electron/dist/resources/electron.asar/common/reset-search-paths.js:35:12)
at Function.Module._load (internal/modules/cjs/loader.js:528:25)
at Module.require (internal/modules/cjs/loader.js:658:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/home/pi/MagicMirror/modules/MMM-Buller/node_helper.js:14:18)
at Object.<anonymous> (/home/pi/MagicMirror/modules/MMM-Buller/node_helper.js:214:3)
at Module._compile (internal/modules/cjs/loader.js:711:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:722:10)
at Module.load (internal/modules/cjs/loader.js:620:32)
Whoops! There was an uncaught exception...
{ Error: Cannot find module 'googleapis'
at Module._resolveFilename (internal/modules/cjs/loader.js:602:15)
at Function.Module._resolveFilename (/home/pi/MagicMirror/node_modules/electron/dist/resources/electron.asar/common/reset-search-paths.js:35:12)
at Function.Module._load (internal/modules/cjs/loader.js:528:25)
at Module.require (internal/modules/cjs/loader.js:658:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/home/pi/MagicMirror/modules/MMM-Buller/node_helper.js:14:18)
at Object.<anonymous> (/home/pi/MagicMirror/modules/MMM-Buller/node_helper.js:214:3)
at Module._compile (internal/modules/cjs/loader.js:711:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:722:10)
at Module.load (internal/modules/cjs/loader.js:620:32) code: 'MODULE_NOT_FOUND' }
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 have the following modules clones in my directory:
- DailyXKCD
- Beestat
- Buller
- DarkSkyForecast
- Lyft
- Fitbit
- MyCommute
- Bring
- DailyPokemon
- MBTA
- pi-hole-stats
I am using a Raspberry pi 3, and installed MM using the curl script. The first alarm was whenever I tried using npm install
inside a module directory. I got a node.js incompatibility command. I was on 10.something, and following the text updated to latest version of 9.something. After that, the npm warning of incompatible version went away, but the following still comes up:
pi@magicmirror:~/MagicMirror/modules/MMM-Buller $ npm install
npm WARN Invalid version: "1.0"
npm WARN MMM-Buller No description
npm WARN MMM-Buller No repository field.
npm WARN MMM-Buller No README data
npm WARN MMM-Buller No license field.
Is this a catastrophic warning? I do not think my config.json is an issue. npm run config:check outputs:
pi@magicmirror:~/MagicMirror $ npm run config:check
> magicmirror@2.9.0 config:check /home/pi/MagicMirror
> node tests/configs/check_config.js
Checking file... /home/pi/MagicMirror/config/config.js
Your configuration file doesn't contain syntax errors :)
Also, for some reason, npm does not recognize `npm audit’ command.
I know it is a lot of info, I will promtly try to post outputs of any validation commands.
Lastly - my config.json is as follows:
/* Magic Mirror Config Sample
*
* By Michael Teeuw http://michaelteeuw.nl
* MIT Licensed.
*
* For more information how you can configurate this file
* See https://github.com/MichMich/MagicMirror#configuration
*
*/
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: 8080,
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: "en",
timeFormat: 12,
units: "metric",
// Modules //
modules: [
// Alert
{
module: "alert",
},
// Notifications
{
module: "updatenotification",
position: "top_bar"
},
// Buller - It will put out reminders and compliments
{
module: 'MMM-Buller',
position: 'top_bar',
//header: 'Buller',
config: {
debug: false,
lists: [
{
type: 'gTasks',
name: 'Compliments',
updateInterval: 1000 * 60 * 1 * 2, //every minutes
color: 'pink',
icon: 'fas heart'
},
{
type: 'gTasks',
name: 'Reminders',
icon: 'fas lightbulb-o',
updateInterval: 1000 * 60 * 1 * 3, //every minutes
color: 'blue'
}
],
}
},
// Clock
{
module: "clock",
position: "top_right",
config: {
timeFormat: '12',
displaySeconds: 'false',
showPeriod: 'true',
clockBold: 'true',
timezone: 'America/New_York' //Karachi
}
},
// calendar
{
module: "calendar",
//header: "Calenar",
position: "top_right",
config: {
calendars: [
{
symbol: "island-tropical",
url: "webcal://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics"
},
{
symbol: "user-friends",
url: "webcal://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics"
}
]
}
},
//Buller - this one will be todo in house
{
module: 'MMM-Buller',
position: 'top_right',
header: 'To Do',
config: {
debug: false,
lists: [
{
type: 'gTasks',
name: 'HomeToDo',
updateInterval: 1000 * 60 * 1 * 1, //every minutes
icon: 'fas tasks',
}
],
}
},
// dARKYsKY module
{
module: "MMM-DarkSkyForecast",
header: "XXXXX",
position: "top_left",
classes: "default everyone",
config: {
apikey: "XXXX",
latitude: "XXXX",
longitude: "XXXX",
iconset: "3c",
concise: false,
forecastLayout: "table",
units: "us",
maxHourliesToShow: "4",
maxDailiesToShow: "4",
}
},
// XKCD
{
module: 'DailyXKCD',
position: 'bottom_left',
config: {
invertColors: true,
showTitle: true,
showAltText: true,
randomComic: true
}
},
// Bring shopping list
{
module: "MMM-Bring",
position: "bottom_center",
config: {
email: "USER@EXAMPLE.COM",
password: "SECRET",
updateInterval: 15, // in Minutes
listName: "Weggies", // optional
showListName: true,
activeItemColor: "#EE524F",
latestItemColor: "#4FABA2",
showLatestItems: false,
maxItems: 0,
maxLatestItems: 0,
locale: "de-DE"
}
},
// MBTA - Main x Emerson
{
module: 'MMM-MBTA',
position: 'bottom_left', // This can be any of the regions.
header: "XXXXXx",
config: {
apikey: 'XXXX',
updateInterval: 30,
stations: 'XXX',
formatETA: 'true',
showOnly: ["Subway", "Bus"],
colorIcons: 'true',
direction: 'Inbound',
noETAToBack: 'false'
}
},
// MBTA - Davis
{
module: 'MMM-MBTA',
position: 'bottom_left', // This can be any of the regions.
header: "XXXX",
config: {
apikey: 'XXXX',
updateInterval: 20,
stations: 'XXX": "XXX',
formatETA: 'true',
showOnly: ["Subway", "Bus"],
colorIcons: 'true',
flipDirection: 'true',
direction: 'Inbound',
noETAToBack: 'false'
}
},
// Commute
{
module: 'MMM-MyCommute',
position: 'bottom_right',
header: 'XXXX',
classes: 'default everyone',
config: {
apikey: 'XXXX ',
origin: 'XXXX',
startTime: '06:00',
endTime: '18:00',
hideDays: [0,6],
pollFrequency: '10 * 60 * 1000',
destinations: [
{
destination: 'XXXX',
label: 'XXXX',
mode: 'transit',
color: '#82E5AA'
},
{
destination: 'XXXX',
label: 'XXXX',
mode: 'driving'
},
{
destination: 'XXXX',
label: 'XXXX',
mode: 'transit',
color: '#82E5AA'
},
{
destination: 'XXXX',
label: 'XXXX',
mode: 'driving'
}
]
}
},
]
};
/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = config;}