Read the statement by Michael Teeuw here.
New module installer
-
@plainbroke pushed a few more updates… now open repo button in configuration screens as well as installer
-
@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" } ] } ;
-
@MDWEBB hm, could not validate file…
edit: ---- you said you reinstalled, so this is not a file corruption problem
lets go to the MMM-CalendarExt3 folder
and dogit status
it should not list any files
please show the reults
-
@MDWEBB also you changed refreshInterval to 600
milliseconds down from 30 minutes!! (the module cannot redraw that fast)i think you need to change the waitFetch value up to 10000
milliseconds.i don’t think refreshInterval should ever be less that 300000
(5 minutes) -
@MDWEBB I could not recreate the error by setting one of my Ext3 instances to refreshInterval :600
-
BUT… just for the sake of testing something… MMM-Config saved the prior config.js
so if you
cd~/MagicMirror/config #rename this one out of the way mv config.js save-config.js ls config -laFt config.* #and copy the top one back to config.js #mark the filename, right click mouse cp -rightclick-paste config.js
and then restart MagicMirror
do you still get the error??
-
I added the default modules to have links to their config doc too… (in configuration)
I made significant changes to the weather form layout, using select lists and custom field sets per weather provider.
updated the schemas MMM-Config ships to add the view readme button -
@MDWEBB said in New module installer:
[ERROR] ReferenceError: HTMLElement is not defined
This error message seems to be caused by some JS validator trying to check the browser-oriented syntax on the nodeJS environment.
@MDWEBB
You’d better start from a clean configuration and then add one by one to find what was wrong. -
@MDWEBB said in New module installer:
at /home/mdwebb/MagicMirror/modules/MMM-Remote-Control/node_helper.js:271:26
I bet this is the remote-control error…
shouldn’t stop anything
but, if you want to try my fork, which captures that errorhttps://github.com/sdetweil/MMM-Remote-Control
just remove the existing folder and git clone mine in its place
no functional code change or parms… just trapping this error -
@sdetweil Apologise for slow reply i was able to remove the node modules file and run the update for the module and now my calendar is working again.