@sdetweil Hi Sam,
I update the fetch interval on my CalendarExt3 module via MMM-Config as i had a power flick and events hadn’t came back quick enough for my liking. However now the whole CalendarExt3 module is not display and i am getting errors on start up saying it can’t calidate main module.js i hadn’t made any changes outside of the config module. I tried uninstalling CalendaerExt3 and reinstalling but without any luck would love some guidance. Will past the latest config module below also.
mdwebb@raspberrypi:~/MagicMirror $ npm start
> magicmirror@2.31.0-develop start
> npm run start:x11
> magicmirror@2.31.0-develop start:x11
> DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js
[2025-01-20 20:36:52.086] [LOG] Starting MagicMirror: v2.31.0-develop
[2025-01-20 20:36:52.114] [LOG] Loading config ...
[2025-01-20 20:36:52.116] [LOG] config template file not exists, no envsubst
[2025-01-20 20:36:52.693] [INFO] Checking config file /home/mdwebb/MagicMirror/config/config.js ...
[2025-01-20 20:36:52.837] [INFO] Your configuration file doesn't contain syntax errors :)
[2025-01-20 20:36:52.839] [INFO] Checking modules structure configuration ...
[2025-01-20 20:36:52.983] [INFO] Your modules structure configuration doesn't contain errors :)
[2025-01-20 20:36:52.985] [LOG] Loading module helpers ...
[2025-01-20 20:36:52.997] [LOG] Initializing new module helper ...
[2025-01-20 20:36:52.998] [LOG] Module helper loaded: updatenotification
[2025-01-20 20:36:52.999] [LOG] No helper found for module: clock.
[2025-01-20 20:36:53.000] [LOG] No helper found for module: MMM-CountDown.
[2025-01-20 20:36:53.244] [LOG] Initializing new module helper ...
[2025-01-20 20:36:53.244] [LOG] Module helper loaded: MMM-ImagesPhotos
[2025-01-20 20:36:53.265] [LOG] Initializing new module helper ...
[2025-01-20 20:36:53.265] [LOG] Module helper loaded: MMM-OpenWeatherMapForecast
[2025-01-20 20:36:53.429] [LOG] Initializing new module helper ...
[2025-01-20 20:36:53.429] [LOG] Module helper loaded: MMM-Config
[2025-01-20 20:36:53.430] [LOG] No helper found for module: MMM-CalendarExt3.
[2025-01-20 20:36:53.430] [LOG] No helper found for module: alert.
[2025-01-20 20:36:53.526] [LOG] Initializing new module helper ...
[2025-01-20 20:36:53.527] [LOG] Module helper loaded: calendar
[2025-01-20 20:36:53.650] [LOG] Initializing new module helper ...
[2025-01-20 20:36:53.650] [LOG] Module helper loaded: MMM-Remote-Control
[2025-01-20 20:36:53.698] [LOG] Initializing new module helper ...
[2025-01-20 20:36:53.698] [LOG] Module helper loaded: MMM-ModuleScheduler
[2025-01-20 20:36:53.699] [LOG] All module helpers loaded.
[2025-01-20 20:36:53.711] [LOG] Starting server on port 8080 ...
[2025-01-20 20:36:54.371] [LOG] Server started ...
[2025-01-20 20:36:54.377] [LOG] Connecting socket for: updatenotification
[2025-01-20 20:36:54.378] [LOG] Starting module helper: updatenotification
[2025-01-20 20:36:54.384] [LOG] Connecting socket for: MMM-ImagesPhotos
[2025-01-20 20:36:54.386] [LOG] Starting node helper for: MMM-ImagesPhotos
[2025-01-20 20:36:54.389] [LOG] Connecting socket for: MMM-OpenWeatherMapForecast
[2025-01-20 20:36:54.390] [LOG] Starting node_helper for MMM-OpenWeatherMapForecast
[2025-01-20 20:36:54.396] [LOG] Connecting socket for: MMM-Config
[2025-01-20 20:36:54.727] [LOG] will pull config data at 17:00:00 in 22985320 ms
[2025-01-20 20:36:54.729] [LOG] Connecting socket for: calendar
[2025-01-20 20:36:54.736] [LOG] Starting node helper for: calendar
[2025-01-20 20:36:54.738] [LOG] Connecting socket for: MMM-Remote-Control
[2025-01-20 20:36:54.744] [LOG] Starting node helper for: MMM-Remote-Control
[2025-01-20 20:36:54.848] [LOG] Connecting socket for: MMM-ModuleScheduler
[2025-01-20 20:36:54.849] [LOG] Starting node helper for: MMM-ModuleScheduler
[2025-01-20 20:36:54.850] [LOG] Sockets connected & modules started ...
[2025-01-20 20:36:55.644] [LOG] Launching application.
[2025-01-20 20:36:57.126] [INFO] System information:
### SYSTEM: manufacturer: ; model: ; virtual: false
### OS: platform: linux; distro: Debian GNU/Linux; release: 12; arch: arm64; kernel: 6.6.51+rpt-rpi-v8
### VERSIONS: electron: 32.2.7; used node: 20.18.1; installed node: 20.18.1; npm: 10.8.2; pm2: 5.4.3
### OTHER: timeZone: Australia/Melbourne; ELECTRON_ENABLE_GPU: undefined
[2025-01-20 20:36:57.162] [ERROR] ERROR! Could not validate main module js file.
[2025-01-20 20:36:57.168] [ERROR] ReferenceError: HTMLElement is not defined
at Object.<anonymous> (/home/mdwebb/MagicMirror/modules/MMM-CalendarExt3/MMM-CalendarExt3.js:6:26)
at Module._compile (node:internal/modules/cjs/loader:1484:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1564:10)
at Module.load (node:internal/modules/cjs/loader:1295:32)
at Module._load (node:internal/modules/cjs/loader:1111:12)
at c._load (node:electron/js2c/node_init:2:16955)
at Module.require (node:internal/modules/cjs/loader:1318:19)
at require (node:internal/modules/helpers:179:18)
at Class.loadModuleDefaultConfig (/home/mdwebb/MagicMirror/modules/MMM-Remote-Control/node_helper.js:317:30)
at /home/mdwebb/MagicMirror/modules/MMM-Remote-Control/node_helper.js:271:26
at FSReqCallback.oncomplete (node:fs:198:5)
[3636:0120/203657.414249:ERROR:gbm_wrapper.cc(74)] Failed to get fd for plane.: No such file or directory (2)
[3636:0120/203657.423716:ERROR:gbm_wrapper.cc(257)] Failed to export buffer to dma_buf: No such file or directory (2)
[3636:0120/203657.424432:ERROR:gbm_wrapper.cc(74)] Failed to get fd for plane.: No such file or directory (2)
[3636:0120/203657.424789:ERROR:gbm_wrapper.cc(257)] Failed to export buffer to dma_buf: No such file or directory (2)
[3636:0120/203657.425361:ERROR:gbm_wrapper.cc(74)] Failed to get fd for plane.: No such file or directory (2)
[3636:0120/203657.425726:ERROR:gbm_wrapper.cc(257)] Failed to export buffer to dma_buf: No such file or directory (2)
[3636:0120/203657.426131:ERROR:gbm_wrapper.cc(74)] Failed to get fd for plane.: No such file or directory (2)
[3636:0120/203657.426495:ERROR:gbm_wrapper.cc(257)] Failed to export buffer to dma_buf: No such file or directory (2)
[3636:0120/203657.431838:ERROR:gbm_wrapper.cc(74)] Failed to get fd for plane.: No such file or directory (2)
[3636:0120/203657.439567:ERROR:gbm_wrapper.cc(257)] Failed to export buffer to dma_buf: No such file or directory (2)
[3636:0120/203657.451490:ERROR:gbm_wrapper.cc(74)] Failed to get fd for plane.: No such file or directory (2)
[3636:0120/203657.455922:ERROR:gbm_wrapper.cc(257)] Failed to export buffer to dma_buf: No such file or directory (2)
[3636:0120/203657.456469:ERROR:gbm_wrapper.cc(74)] Failed to get fd for plane.: No such file or directory (2)
[3636:0120/203657.456802:ERROR:gbm_wrapper.cc(257)] Failed to export buffer to dma_buf: No such file or directory (2)
[3636:0120/203657.458595:ERROR:gbm_wrapper.cc(74)] Failed to get fd for plane.: No such file or directory (2)
[3636:0120/203657.463710:ERROR:gbm_wrapper.cc(257)] Failed to export buffer to dma_buf: No such file or directory (2)
[3636:0120/203657.468093:ERROR:gbm_wrapper.cc(74)] Failed to get fd for plane.: No such file or directory (2)
[3636:0120/203657.471514:ERROR:gbm_wrapper.cc(257)] Failed to export buffer to dma_buf: No such file or directory (2)
[3636:0120/203657.472361:ERROR:gbm_wrapper.cc(74)] Failed to get fd for plane.: No such file or directory (2)
[3636:0120/203657.472678:ERROR:gbm_wrapper.cc(257)] Failed to export buffer to dma_buf: No such file or directory (2)
[3636:0120/203657.473397:ERROR:gbm_wrapper.cc(74)] Failed to get fd for plane.: No such file or directory (2)
[3636:0120/203657.479438:ERROR:gbm_wrapper.cc(257)] Failed to export buffer to dma_buf: No such file or directory (2)
[3636:0120/203657.485371:ERROR:gbm_wrapper.cc(74)] Failed to get fd for plane.: No such file or directory (2)
[3636:0120/203657.485794:ERROR:gbm_wrapper.cc(257)] Failed to export buffer to dma_buf: No such file or directory (2)
[3636:0120/203657.486390:ERROR:gbm_wrapper.cc(74)] Failed to get fd for plane.: No such file or directory (2)
[3636:0120/203657.486682:ERROR:gbm_wrapper.cc(257)] Failed to export buffer to dma_buf: No such file or directory (2)
[3636:0120/203657.487070:ERROR:gbm_wrapper.cc(74)] Failed to get fd for plane.: No such file or directory (2)
[3636:0120/203657.488116:ERROR:gbm_wrapper.cc(257)] Failed to export buffer to dma_buf: No such file or directory (2)
[2025-01-20 20:36:58.222] [LOG]
[2025-01-20 20:37:00.003] [LOG] Config based debug=module_3_MMM-ImagesPhotos
[2025-01-20 20:37:00.008] [LOG] Create new calendarfetcher for url: https://calendar.google.com/calendar/ical/ - Interval: 3600000
[2025-01-20 20:37:00.017] [LOG] MMM-ModuleScheduler is removing all scheduled jobs
[2025-01-20 20:37:00.018] [LOG] MMM-ModuleScheduler received CREATE_NOTIFICATION_SCHEDULE
[2025-01-20 20:37:00.021] [LOG] MMM-ModuleScheduler cannot create schedule. Missing `schedule` in `notification_schedule`: true
[2025-01-20 20:37:00.029] [INFO] updatenotification: Updater Class Loaded!
[2025-01-20 20:37:00.030] [INFO] updatenotification: Checking PM2 using...
[2025-01-20 20:37:00.031] [INFO] updatenotification: [PM2] You are not using pm2
[2025-01-20 20:37:00.033] [INFO] Checking git for module: MMM-CountDown
[2025-01-20 20:37:00.070] [INFO] Checking git for module: MMM-ImagesPhotos
[2025-01-20 20:37:00.104] [INFO] Checking git for module: MMM-OpenWeatherMapForecast
[2025-01-20 20:37:00.171] [INFO] Checking git for module: MMM-Config
[2025-01-20 20:37:00.213] [INFO] Checking git for module: MMM-CalendarExt3
[2025-01-20 20:37:00.240] [INFO] Checking git for module: MMM-Remote-Control
[2025-01-20 20:37:00.265] [INFO] Checking git for module: MMM-ModuleScheduler
[2025-01-20 20:37:00.319] [INFO] Checking git for module: MagicMirror
[2025-01-20 20:37:05.720] [INFO] Calendar-Fetcher: Broadcasting 970 events from https://calendar.google.com/calendar/ical...
[2025-01-20 20:37:06.063] [LOG] Shutting down server...
[2025-01-20 20:37:06.066] [LOG] Stopping module helper: updatenotification
[2025-01-20 20:37:06.067] [LOG] Stopping module helper: MMM-ImagesPhotos
[2025-01-20 20:37:06.069] [LOG] Stopping module helper: MMM-OpenWeatherMapForecast
[2025-01-20 20:37:06.070] [LOG] Stopping module helper: MMM-Config
[2025-01-20 20:37:06.071] [LOG] Stopping module helper: calendar
[2025-01-20 20:37:06.076] [LOG] Stopping module helper: MMM-ModuleScheduler
[2025-01-20 20:37:06.078] [LOG] Node_helpers stopped ...
Config file
var config = {
address: "0.0.0.0",
port: 8080,
basePath: "/",
ipWhitelist: [
"127.0.0.1",
"::ffff:127.0.0.1",
"::1",
"192.000.00.000",
"192.000.00.00"
],
language: "en",
locale: "en-US",
logLevel: [
"INFO",
"LOG",
"WARN",
"ERROR"
],
timeFormat: 24,
units: "metric",
useHttps: false,
modules: [
{
module: "updatenotification",
position: "top_bar",
order: "*",
disabled: false,
animateIn: "None",
animateOut: "None",
config: {}
},
{
module: "clock",
position: "top_left",
order: "*",
animateIn: "None",
animateOut: "None",
index: 0,
label: "instance 1",
config: {
displayType: "digital",
timeFormat: "24",
displaySeconds: true,
showPeriod: true,
showDate: true,
showTime: true,
dateFormat: "dddd, LL",
analogSize: "200px",
analogFace: "simple",
analogPlacement: "bottom",
analogShowDate: "top",
secondsColor: "#888888",
lat: 47.630539,
lon: -122.344147,
showPeriodUpper: false,
clockBold: false,
showWeek: false,
sendNotifications: false,
showSunTimes: false,
showMoonTimes: false
},
disabled: false
},
{
module: "MMM-CountDown",
position: "top_left",
config: {
date: "2025-02-21",
event: "Webb Holiday"
},
order: "*",
disabled: false,
animateIn: "None",
animateOut: "None"
},
{
module: "MMM-ImagesPhotos",
position: "top_center",
config: {
animationSpeed: 1000,
updateInterval: 30000,
maxHeight: "500px",
maxWidth: "500px",
path: ""
},
order: "*",
disabled: false,
animateIn: "None",
animateOut: "None"
},
{
module: "weather",
disabled: true,
position: "top_right",
label: "instance 1",
order: "*",
index: 0,
animateIn: "none",
animateOut: "none",
config: {
weatherProvider: "openmeteo",
type: "current",
units: "metric",
tempUnits: "metric",
windUnits: "metric",
timeFormat: "24",
useBeaufort: true,
lang: "en",
useKmh: false,
showHumidity: false
}
},
{
module: "weather",
disabled: true,
position: "top_right",
label: "instance 2",
order: "*",
index: 1,
animateIn: "none",
animateOut: "none",
config: {
weatherProvider: "openmeteo",
type: "forecast",
units: "metric",
tempUnits: "metric",
windUnits: "metric",
updateInterval: 600000,
animationSpeed: 1000,
timeFormat: "24",
showPeriod: true,
showWindDirection: true,
useBeaufort: true,
lang: "en",
showSun: true,
decimalSymbol: ".",
maxNumberOfDays: 5,
maxEntries: 5,
fade: true,
fadePoint: 0.25,
initialLoadDelay: 0,
appendLocationNameToHeader: true,
calendarClass: "calendar",
tableClass: "small",
showFeelsLike: true,
roundTemp: false,
useKmh: false,
showPeriodUpper: false,
showWindDirectionAsArrow: false,
showHumidity: false,
degreeLabel: false,
showIndoorTemperature: false,
showIndoorHumidity: false,
ignoreToday: false,
onlyTemp: false,
showPrecipitationAmount: false,
colored: false,
absoluteDates: false
}
},
{
module: "MMM-OpenWeatherMapForecast",
header: "Weather",
position: "top_right",
classes: "default everyone",
config: {
apikey: "",
latitude: "-38.314560",
longitude: "146.419373",
iconset: "4c",
concise: false,
forecastLayout: "table",
maxDailiesToShow: 5,
showWind: false,
units: "metric",
language: "en",
showExtraCurrentConditions: false,
showHourlyForecast: false,
forecastHeaderText: ""
},
order: "*",
disabled: false,
animateIn: "None",
animateOut: "None"
},
{
module: "MMM-Config",
position: "top_right",
config: {
restart: "none"
},
order: "*",
disabled: false,
animateIn: "none",
animateOut: "none"
},
{
module: "MMM-CalendarExt3",
position: "bottom_bar",
title: "",
config: {
instanceId: "basicCalendar",
locale: "en-US",
maxEventLines: 6,
firstDayOfWeek: "0",
weekIndex: 0,
weeksInView: 4,
eventHeight: "15px",
useMarquee: true,
refreshInterval: 600,
eventTransformer: (ev)=> {
if (ev.title.search('DINNER') > -1) ev.symbol = ['fluent-color:food-28']
if (ev.title.search('Arnold') > -1) ev.symbol = ['fluent-emoji-flat:dog']
if (ev.title.search('Gus') > -1) ev.symbol = ['fluent-emoji-flat:dog']
if (ev.title.search('Dogs') > -1) ev.symbol = ['fluent-emoji-flat:dog']
if (ev.title.search('dogs') > -1) ev.symbol = ['fluent-emoji-flat:dog']
if (ev.title.search('Marcus') > -1) ev.symbol = ['noto:pretzel']
if (ev.title.search('Pretzel') > -1) ev.symbol = ['noto:pretzel']
if (ev.title.search('Recycle Bin') > -1) ev.symbol = ['game-icons:soda-bottle']
if (ev.title.search('Green Waste bins') > -1) ev.symbol = ['streamline-emojis:leaf-fluttering-in-wind']
if (ev.title.search('Cleaning Day') > -1) ev.symbol = ['openmoji:broom']
if (ev.title.search('Swimming') > -1) ev.symbol = ['fxemoji:swimming']
if (ev.title.search('Phils') > -1) ev.symbol = ['twemoji:baby-angel-light-skin-tone']
if (ev.title.search('Phyllis') > -1) ev.symbol = ['twemoji:baby-angel-light-skin-tone']
if (ev.title.search('Birthday') > -1) ev.symbol = ['emojione:birthday-cake']
if (ev.title.search('birthday') > -1) ev.symbol = ['emojione:birthday-cake']
if (ev.title.search('Hugo') > -1) ev.symbol = ['cryptocurrency-color:hight']
if (ev.title.search('Maggie') > -1) ev.symbol = ['cryptocurrency-color:xmy']
if (ev.title.search('Lucas') > -1) ev.symbol = ['openmoji:man-judge-light-skin-tone']
if (ev.title.search('Hudge') > -1) ev.symbol = ['twemoji:gemini']
if (ev.title.search('Danielle') > -1) ev.symbol = ['twemoji:gemini']
if (ev.title.search('Factory') > -1) ev.symbol = ['emojione-v1:cow']
if (ev.title.search('factory') > -1) ev.symbol = ['emojione-v1:cow']
return ev
},
eventFilter: (ev) => {
return true
},
manipulateDateCell: (cellDom, events) => {
},
weatherPayload: (payload) => {
return payload
},
eventPayload: (payload) => {
return payload
}
},
order: "*",
disabled: false,
animateIn: "None",
animateOut: "None"
},
{
module: "newsfeed",
disabled: true,
position: "bottom_bar",
order: "*",
animateIn: "None",
animateOut: "None",
index: 0,
label: "instance 1",
config: {
feeds: [
{
title: "New York Times",
url: "https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml",
encoding: "UTF-8"
}
],
showSourceTitle: true,
showPublishDate: true,
broadcastNewsFeeds: true,
broadcastNewsUpdates: true,
wrapTitle: true,
wrapDescription: true,
truncDescription: true,
lengthDescription: 400,
reloadInterval: 300000,
updateInterval: 10000,
animationSpeed: 2500,
maxNewsItems: 0,
ignoreOlderThan: 86400000,
scrollLength: 500,
showAsList: false,
showDescription: false,
showTitleAsUrl: false,
hideLoading: false,
ignoreOldItems: false,
logFeedWarnings: false,
dangerouslyDisableAutoEscaping: false,
startTags: [],
endTags: [],
prohibitedWords: []
}
},
{
module: "alert",
order: "*",
animateIn: "None",
animateOut: "None",
index: 0,
label: "instance 1",
config: {
effect: "slide",
alert_effect: "jelly",
display_time: 3500,
position: "center",
welcome_message: false
},
disabled: false
},
{
module: "calendar",
order: "*",
animateIn: "None",
animateOut: "None",
index: 0,
label: "instance 1",
config: {
maximumEntries: 10,
maximumNumberOfDays: 365,
limitDays: 0,
pastDaysCount: 0,
displaySymbol: true,
defaultSymbol: "calendar-alt",
defaultSymbolClassName: "fas fa-fw fa-",
maxTitleLength: 25,
maxLocationTitleLength: 25,
maxTitleLines: 3,
maxEventTitleLines: 3,
fetchInterval: 3600000,
animationSpeed: 2000,
fade: true,
fadePoint: 0.25,
urgency: 7,
timeFormat: "relative",
dateFormat: "MMM Do",
dateEndFormat: "LT",
fullDayEventDateFormat: "MMM Do",
getRelative: 6,
hideDuplicates: true,
tableClass: "small",
calendars: [
{
symbol: "calendar-alt",
url: "https://calendar.google.com/calendar/ical/
}
],
customEvents: [
{
keyword: ".*",
transform: {
search: "De verjaardag van "
}
},
{
keyword: ".*",
transform: {
search: "'s birthday"
}
}
],
locationTitleReplace: {
"street ": ""
},
broadcastEvents: true,
broadcastPastEvents: true,
updateOnFetch: true,
showLocation: false,
displayRepeatingCountTitle: false,
wrapEvents: false,
wrapLocationEvents: false,
showEnd: false,
showEndsOnlyWithDuration: false,
hidePrivate: false,
hideOngoing: false,
hideTime: false,
showTimeToday: false,
colored: false,
forceUseCurrentTime: false,
sliceMultiDayEvents: false,
nextDaysRelative: false,
selfSignedCert: false,
coloredText: false,
coloredBorder: false,
coloredSymbol: false,
coloredBackground: false,
limitDaysNeverSkip: false,
flipDateHeaderTitle: false,
excludedEvents: []
},
disabled: false
},
{
module: "MMM-Remote-Control",
config: {
apiKey: ""
},
order: "*",
disabled: false,
animateIn: "None",
animateOut: "None"
},
{
module: "MMM-ModuleScheduler",
config: {
notification_schedule: true
},
order: "*",
disabled: false,
animateIn: "None",
animateOut: "None"
}
]
}
;