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.
Please make sure to only submit reproducible issues. You can safely remove everything above the dividing line.
When submitting a new issue, please supply the following information:
Platform: Raspberry Pi 4, MagicMirror OS).
Node Version: v12.22.1
MagicMirror Version: 2.15
Description: So I was using Magic Mirror OS on raspi 4 for long time, it was running docker under the hood, suddenly after one night, I am not able to start the magicmirror again. there is some issues with uuid package I think, but I have no skills with node and electron .
root@magicmirror:/home/pi/magicmirror/run# docker logs -f mm
copy default modules to host ...
copy css files to host ...
chown modules and config folder ...
timezone is Europe/Berlin
start magicmirror
> magicmirror@2.15.0 start /opt/magic_mirror
> DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js
[10.04.2021 14:17.52.456] [LOG] Starting MagicMirror: v2.15.0
[10.04.2021 14:17.52.461] [LOG] Loading config ...
[10.04.2021 14:17.52.470] [LOG] Loading module helpers ...
[10.04.2021 14:17.52.477] [LOG] No helper found for module: alert.
[10.04.2021 14:17.52.795] [ERROR] WARNING! Could not load config file. Starting with default configuration. Error found: Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './v4' is not defined by "exports" in /opt/magic_mirror/node_modules/uuid/package.json
[10.04.2021 14:17.52.796] [LOG] Loading module helpers ...
[10.04.2021 14:17.52.797] [LOG] No helper found for module: alert.
[10.04.2021 14:17.52.809] [ERROR] App threw an error during load
[10.04.2021 14:17.52.813] [ERROR] Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './v4' is not defined by "exports" in /opt/magic_mirror/node_modules/uuid/package.json
at applyExports (internal/modules/cjs/loader.js:497:9)
at resolveExports (internal/modules/cjs/loader.js:513:23)
at Function.Module._findPath (internal/modules/cjs/loader.js:641:31)
at Module._resolveFilename (internal/modules/cjs/loader.js:959:27)
at Function.n._resolveFilename (electron/js2c/browser_init.js:249:921)
at Function.Module._resolveFilename (/opt/magic_mirror/node_modules/module-alias/index.js:49:29)
at Module._load (internal/modules/cjs/loader.js:848:27)
at Function.f._load (electron/js2c/asar_bundle.js:5:12738)
at Module.require (internal/modules/cjs/loader.js:1032:19)
at require (internal/modules/cjs/helpers.js:72:18)
[10.04.2021 14:17.52.820] [ERROR] Whoops! There was an uncaught exception...
[10.04.2021 14:17.52.825] [ERROR] Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './v4' is not defined by "exports" in /opt/magic_mirror/node_modules/uuid/package.json
at applyExports (internal/modules/cjs/loader.js:497:9)
at resolveExports (internal/modules/cjs/loader.js:513:23)
at Function.Module._findPath (internal/modules/cjs/loader.js:641:31)
at Module._resolveFilename (internal/modules/cjs/loader.js:959:27)
at Function.n._resolveFilename (electron/js2c/browser_init.js:249:921)
at Function.Module._resolveFilename (/opt/magic_mirror/node_modules/module-alias/index.js:49:29)
at Module._load (internal/modules/cjs/loader.js:848:27)
at Function.f._load (electron/js2c/asar_bundle.js:5:12738)
at Module.require (internal/modules/cjs/loader.js:1032:19)
at require (internal/modules/cjs/helpers.js:72:18) {
code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}
[10.04.2021 14:17.52.827] [ERROR] MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
[10.04.2021 14:17.52.827] [ERROR] If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
[10.04.2021 14:17.53.129] [LOG] Launching application.
^C
Configuration:
/* Magic Mirror Config Sample
*
* By Michael Teeuw https://michaelteeuw.nl
* MIT Licensed.
*
* For more information on how you can configure this file
* See https://github.com/MichMich/MagicMirror#configuration
*
*/
var config = {
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 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.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"],
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: "sk",
logLevel: ["INFO", "LOG", "WARN", "ERROR"],
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: "alert",
},
{
module: 'MMM-Remote-Control',
// uncomment the following line to show the URL of the remote control on the mirror
// , position: 'bottom_left'
// you can hide this module afterwards from the remote control itself
config: {
customCommand: {}, // Optional, See "Using Custom Commands" below
//customMenu: "custom_menu.json", // Optional, See "Custom Menu Items" below
//showModuleApiMenu: true, // Optional, Enable the Module Controls menu
//apiKey: "", // Optional, See API/README.md for details
}
},
{
module: "updatenotification",
position: "bottom_bar"
},
{
module: "clock",
position: "top_left"
},
{
module: "MMM-Meniny",
position: "top_left",
config: {
message: "Meniny má <i>$TODAY$</i>. <br/> Zajtra <i>$TOMORROW$</i>."
// you can use $TODAY$ as name of today, $TOMORROW$ as name of tomorrow.
}
},
{
module: "calendar",
header: "Sviatky",
position: "top_left",
config: {
calendars: [
{
symbol: "calendar-check-o ",
url: "webcal://calendar.zoznam.sk/icalendar/create-vcard-multiple.php?fName=sk"
}
],
maximumEntries: "3",
fetchInterval: "3600000"
}
},
{
module: "calendar",
header: "Lukáš súkromný kalendár",
position: "top_left",
config: {
calendars: [
{
symbol: "calendar-check-o",
url: ""
},
],
maximumEntries: "5",
fetchInterval: "300000"
}
},
{
module: "calendar",
header: "Lukáš pracovný kalendár",
position: "top_left",
config: {
calendars: [
{
symbol: "calendar-check-o",
url: "w"
}
],
maximumEntries: "3",
fetchInterval: "620000"
}
},
{
module: "calendar",
header: "Majka pracovný kalendár",
position: "top_left",
config: {
calendars: [
{
symbol: "calendar-check-o",
url: "s"
}
],
maximumEntries: "3",
fetchInterval: "620000"
}
},
{
disabled: false,
module: 'MMM-RAIN-RADAR',
position: 'top_center',
config: {
useHeader: false, // true if you want a header
lat: "48.8773474", // Latitude
lon: "17.9923484", // Longitude
area: 'IL', // US State
zoomLevel: 8,
mapType: 2, //0-Road Map 1-Satellite 2-Dark Map 3-OpenStreetMaps 4-Light Map
color: 6, //0-Original 1-Universal Blue 2-TITAN 3-The Weather Channel 5-NEXRAD Level-III 6-RAINBOW @ SELEX-SI
snow: 1,
smoothing: 1,
opacity: 50,
fastAnimation: 0,
coverage: 0,
darkTheme: 1,
UTCtime: 0,
legend: 1,
legendMin: 1, //set legend to 1 if you want legendMin to show
animate: 1,
updateOnWarning: 0, // 1: after updateInterval, weather warnings for your US states will be used to determine if module should be hidden. 0 module is perpertually displayed
updateInterval: 5 * 60 * 1000, // number of milliseconds. change 5 to 60 and it will update each 10 minutes
}
},
{
module: "MMM-DarkSkyForecast",
header: "",
position: "top_right",
classes: "default everyone",
disabled: false,
language: "sk",
config: {
apikey: "",
latitude: "48.9545935",
longitude: "18.1718031",
iconset: "4c",
concise: true,
forecastLayout: "table",
useAnimatedIcons: false,
label_timeFormat: "k[h]",
//label_days: "['Ned','Pon','Uto', 'Str', 'Štv', 'Pia', 'Sob']",
showHourlyForecast: false,
}
},
{
module: 'MMM-AQI',
position: 'top_right',
header: 'Kvalita vzduchu (AQI)',
config: {
token: "",
city: "Trencin",
iaqi: false,
updateInterval: 30 * 60 * 1000, // Every half hour.
initialLoadDelay: 0,
animationSpeed: 1000,
debug: false
}
},
{
module: 'MMM-SingleStock',
position: 'top_right',
config: {
stockSymbol: 'TSLA',
apiToken: '', // Unique, private API key obtained from https://iexcloud.io/console/tokens
updateInterval: 3600000, // 1 hour in milliseconds
showChange: true, // false | true
label: 'companyName', // 'symbol' | 'companyName' | 'none' | any string
colorized: true
}
},
{
module: 'MMM-SingleStock',
position: 'top_right',
config: {
stockSymbol: 'AMD',
apiToken: '', // Unique, private API key obtained from https://iexcloud.io/console/tokens
updateInterval: 3600000, // 1 hour in milliseconds
showChange: true, // false | true
label: 'companyName', // 'symbol' | 'companyName' | 'none' | any string
colorized: true
}
},
{
module: 'MMM-SingleStock',
position: 'top_right',
config: {
stockSymbol: 'AAPL',
apiToken: '', // Unique, private API key obtained from https://iexcloud.io/console/tokens
updateInterval: 3600000, // 1 hour in milliseconds
showChange: true, // false | true
label: 'companyName', // 'symbol' | 'companyName' | 'none' | any string
colorized: true
}
},
{
module: "MMM-cryptocurrency",
position: "top_right",
config: {
apikey: '0',
currency: ['bitcoin'],
conversion: 'EUR',
displayType: 'logoWithChanges',
showGraphs: true,
coloredLogos: false,
logoHeaderText: '',
maximumFractionDigits: 2
}
},
{
module: "newsfeed",
position: "top_bar",
config: {
feeds: [
{
title: "TA3 z domova",
url: "https://www.ta3.com/rss/3/novinky-z-domova.html"
},
{
title: "TA3 zo sveta",
url: "https://www.ta3.com/rss/4/novinky-zo-zahranicia.html"
}
],
showSourceTitle: true,
showPublishDate: true,
reloadInterval: 600000
}
},
{
module: 'MMM-SimpleLogo',
position: 'bottom_left', // This can be any of the regions.
header: 'Kamera kukátko',
config: {
// The config property is optional.
// See 'Configuration options' for more information.
fileUrl: 'http://192.168.1.149:2971/camera/stream',
//fileUrl: 'https://via.placeholder.com/400',
width: '350px',
position: 'center',
refreshInterval: 2 * 1000,
}
},
{
module: 'MMM-SimpleLogo',
position: 'bottom_left', // This can be any of the regions.
header: 'Kamera balkón',
config: {
// The config property is optional.
// See 'Configuration options' for more information.
fileUrl: 'http://192.168.1.104/jpg/image.jpg',
width: '350px',
position: 'center',
refreshInterval: 3 * 1000,
requestDelay: 2000
}
},
{
module: 'MMM-google-route',
position: 'bottom_left',
header: '',
config: {
key: '',
minimumRefreshPeriod: 2,
directionsRequest:{
origin: '',
destination: ''
},
height: '200px',
fontSize: '70%',
refreshPeriod: 15,
}
},
{
module: 'MMM-ModuleScheduler',
config: {
notification_schedule: [
// Refresh the route every minute from 7:00 AM to 8:00 AM, monday to friday
{ notification: 'MMM-google-route/refresh', schedule: '* 7 * * 1-5' }
]
}
},
{
module: 'MMM-homeassistant-sensors',
position: 'top_right',
config: {
host: '',
port: '8123',
https: true,
token: '..',
prettyName: true,
stripName: false,
updateInterval: '30000',
fade: '500',
values: [
{
sensor: "lock.zamok_do_bytu",
name: "Zámok do bytu",
icons: [{
"locked": "shield-lock",
"unlocked": "lock-open-variant-outline"
}
],
replace: [{
"locked": "Zamknutý",
"unlocked": "Odomknutý"
}
]
},
{
sensor: "sensor.dnesna_cena_elektriny_byt",
icons: [{
"default": "currency-eur"
}
]
},
{
sensor: "sensor.cena_nedoplatku_elektriny",
icons: [{
"default": "currency-eur"
}
]
},
{
sensor: "sensor.dnesna_spotreba_teplej_vody",
name: "Dnešná spotreba teplej vody",
displayunit: true,
highAlertThreshold: 120,
icons: [{
"default": "water-pump"
}
]
},
{
sensor: "sensor.dnesna_spotreba_studenej_vody",
name: "Dnešná spotreba studenej vody",
displayunit: true,
highAlertThreshold: 120,
icons: [{
"default": "water-pump"
}
]
},
{
sensor: "sensor.dnesna_cena_vody_byt",
icons: [{
"default": "currency-eur"
}
]
},
{
sensor: "sensor.pocet_sprav_v_schranke",
name: "Počet správ v schránke",
defunit: " ",
icons: [{
"default": "email-check-outline"
}
],
replace: [{
"0": "prázdna"
}]
},
{
sensor: "sensor.pocet_prani_tento_mesiac",
name: "Počet praní tento mesiac",
defunit: " ",
useValue: false,
icons: [{
"default": "washing-machine"
}
]
},
{
sensor: "sensor.pocet_prani_tento_rok",
name: "Počet praní tento rok",
defunit: " ",
icons: [{
"default": "washing-machine"
}
]
},
{
sensor: "sensor.kupelna_teplota",
name: "Teplota v kúpelni",
icons: [{
"default": "home-thermometer-outline"
}
]
},
{
sensor: "sensor.kupelna_vlhkost",
name: "Vlhkosť v kúpelni",
icons: [{
"default": "water-percent"
}
]
},
{
sensor: "sensor.teplota_vody_v_akvariu",
name: "Teplota v akváriu",
icons: [{
"default": "fishbowl"
}
]
},
{
sensor: "sensor.teplota_zrkadlo_kupelna",
name: "Teplota za zrkadlom",
icons: [{
"default": "mirror"
}
]
},
{
sensor: "person.lukas",
name: "Lukáš je %v%",
displayvalue: false,
replace: [{
"home": "doma",
"not_home" : "preč"
}
]
},
{
sensor: "person.majka",
name: "Majka je %v%",
displayvalue: false,
replace: [{
"home": "doma",
"not_home" : "preč"
}
]
},
{
sensor: "proximity.parking",
name: "Octavia parkuje %v% metrov od domu",
displayvalue: false,
displayunit: false,
icons: [{
"default": "car-key"
}
]
},
]
}
},
{
module: 'MMM-SimpleLogo', // Elektrina
position: 'bottom_right', // This can be any of the regions.
header: 'Spotreba elektriny',
config: {
// The config property is optional.
// See 'Configuration options' for more information.
fileUrl: '',
//fileUrl: 'https://via.placeholder.com/400',
width: '350px',
position: 'center',
refreshInterval: 60 * 60 * 1000,
}
},
{
module: 'MMM-SimpleLogo', // Tepla voda
position: 'bottom_right', // This can be any of the regions.
header: 'Spotreba teplej vody',
config: {
// The config property is optional.
// See 'Configuration options' for more information.
fileUrl: '',
//fileUrl: 'https://via.placeholder.com/400',
width: '350px',
position: 'center',
refreshInterval: 60 * 60 * 1000,
requestDelay: 5000
}
},
{
module: "MMM-NowPlayingOnSpotify",
position: "bottom_center",
header: "",
config: {
showCoverArt: false,
updatesEvery: 5,
clientID: "",
clientSecret: "",
accessToken: "-mgKW-FOdSPyzTM8vpzw6Dcr6GN6P_I8xmSZElgnN-w5fg1GDE",
refreshToken: ""
}
},
{
module: 'MMM-SimpleLogo', // Studena voda
position: 'bottom_center', // This can be any of the regions.
header: 'Spotreba studenej vody',
config: {
// The config property is optional.
// See 'Configuration options' for more information.
fileUrl: '',
//fileUrl: 'https://via.placeholder.com/400',
width: '350px',
position: 'center',
refreshInterval: 60 * 60 * 1000,
requestDelay: 10000
}
}
]
};
/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = config;}
Additional Notes:
I saw some issue that docker images are without support now, however I think it should run as till today, I didn't change any lines of config or docker image itself.
Do you have any clues what could go wrong and how to solve this ?
many thanks
I found a bug in MagicMirror
Please make sure to only submit reproducible issues. You can safely remove everything above the dividing line. When submitting a new issue, please supply the following information:
Platform: Raspberry Pi 4, MagicMirror OS).
Node Version: v12.22.1
MagicMirror Version: 2.15
Description: So I was using Magic Mirror OS on raspi 4 for long time, it was running docker under the hood, suddenly after one night, I am not able to start the magicmirror again. there is some issues with uuid package I think, but I have no skills with node and electron .
Steps to Reproduce: I am using latest version of docker image from https://hub.docker.com/r/karsten13/magicmirror/, I also tried dev, 2.13, and 2.14 versions.
Expected Results: start MM as always
Actual Results:
Configuration:
Additional Notes:
I saw some issue that docker images are without support now, however I think it should run as till today, I didn't change any lines of config or docker image itself. Do you have any clues what could go wrong and how to solve this ? many thanks