@sdetweil Thank you, that did the trick!! I really appreciate it!
Read the statement by Michael Teeuw here.
Posts
-
RE: MMM-Remote-Control is NOT able to restart Magic Mirror
-
RE: Default Weather Module Icon Position
Personally I use putty and do everything over command line. On my PC I use Notepad++ for working on files as well, then will copy and paste over to the ssh session.
-
MMM-Remote-Control is NOT able to restart Magic Mirror
I am loving the MMM=Remote-Control module for its many abilities. I have verified that with the exception of ONE, all of my functions are operational. The ‘Restart MagicMirror’ does NOT work, and pops up this error. This does NOT appear to be related to the process name, which is mm. I verified that the Remote files call for this same process name, but just to be safe I ALSO added the following into the MagicMirror/config/config.js file for the Remote module under config: pm2ProcessName: “mm”,
This is what pops up in the browser of the Remote-Control when clicking on restart. I should also note that ‘pm2 restart mm’ works without issues.
{ "success": false, "status": "error", "reason": "PM2 not installed or unlinked", "info": { "code": "MODULE_NOT_FOUND", "requireStack": [ "/home/##USERNAME##/MagicMirror/modules/MMM-Remote-Control/node_helper.js", "/home/##USERNAME##/MagicMirror/js/app.js", "/home/##USERNAME##/MagicMirror/js/electron.js", "/home/##USERNAME##/MagicMirror/node_modules/electron/dist/resources/default_app.asar/main.js", null ] } }Here is what the logs of pm2 show after a restart of the MagicMirror is attempted. Note that shutdown and restart BOTH work with ZERO issues.
0|mm | [06.02.2024 14:52.55.198] [ERROR] Error: Cannot find module 'pm2' 0|mm | Require stack: 0|mm | - /home/##USERNAME##/MagicMirror/modules/MMM-Remote-Control/node_helper.js 0|mm | - /home/##USERNAME##/MagicMirror/js/app.js 0|mm | - /home/##USERNAME##/MagicMirror/js/electron.js 0|mm | - /home/##USERNAME##/MagicMirror/node_modules/electron/dist/resources/default_app.asar/main.js 0|mm | - 0|mm | at node:internal/modules/cjs/loader:1084:15 0|mm | at Function.<anonymous> (node:electron/js2c/browser_init:2:116646) 0|mm | at Module._resolveFilename (/home/##USERNAME##/MagicMirror/node_modules/module-alias/index.js:49:29) 0|mm | at node:internal/modules/cjs/loader:929:27 0|mm | at Function._load (node:electron/js2c/asar_bundle:2:13327) 0|mm | at Module.require (node:internal/modules/cjs/loader:1150:19) 0|mm | at require (node:internal/modules/cjs/helpers:121:18) 0|mm | at Class.controlPm2 (/home/##USERNAME##/MagicMirror/modules/MMM-Remote-Control/node_helper.js:954:18) 0|mm | at Class.executeQuery (/home/##USERNAME##/MagicMirror/modules/MMM-Remote-Control/node_helper.js:697:22) 0|mm | at Class.socketNotificationReceived (/home/##USERNAME##/MagicMirror/modules/MMM-Remote-Control/node_helper.js:1112:26) 0|mm | at Socket.<anonymous> (/home/##USERNAME##/MagicMirror/js/node_helper.js:104:11) 0|mm | at Socket.emit (node:events:514:28) 0|mm | at Socket.emitUntyped (/home/##USERNAME##/MagicMirror/node_modules/socket.io/dist/typed-events.js:69:22) 0|mm | at /home/##USERNAME##/MagicMirror/node_modules/socket.io/dist/socket.js:704:39 0|mm | at process.processTicksAndRejections (node:internal/process/task_queues:77:11) { 0|mm | code: 'MODULE_NOT_FOUND', 0|mm | requireStack: [ 0|mm | '/home/##USERNAME##/MagicMirror/modules/MMM-Remote-Control/node_helper.js', 0|mm | '/home/##USERNAME##/MagicMirror/js/app.js', 0|mm | '/home/##USERNAME##/MagicMirror/js/electron.js', 0|mm | '/home/##USERNAME##/MagicMirror/node_modules/electron/dist/resources/default_app.asar/main.js', 0|mm | undefined 0|mm | ] 0|mm | }Looking further into this, I found an error in my pm2 logs, but I don’t believe it to be pm2 itself that has the error, as I get the SAME error whether pm2 auto-starts the mm or if I use npm manually after stopping pm2.
##USERNAME##@raspberrypi:~/MagicMirror $ pm2 start mm [PM2] Applying action restartProcessId on app [mm](ids: [ 0 ]) [PM2] [mm](0) ✓ [PM2] Process successfully started ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │ ├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ 0 │ mm │ default │ N/A │ fork │ 24416 │ 0s │ 2 │ online │ 0% │ 2.5mb │ ##USERNAME## │ disabled │ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ ##USERNAME##@raspberrypi:~/MagicMirror $ ##USERNAME##@raspberrypi:~/MagicMirror $ ##USERNAME##@raspberrypi:~/MagicMirror $ pm2 logs [TAILING] Tailing last 15 lines for [all] processes (change the value with --lines option) /home/##USERNAME##/.pm2/pm2.log last 15 lines: 0|mm | 0|mm | > magicmirror@2.26.0 start 0|mm | > DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js 0|mm | 0|mm | [06.02.2024 13:46.18.922] [LOG] Starting MagicMirror: v2.26.0 0|mm | [06.02.2024 13:46.18.934] [LOG] Loading config ... 0|mm | [06.02.2024 13:46.29.832] [INFO] updatenotification: You are not using pm2Here is the same output after manually starting
##USERNAME##@raspberrypi:~/MagicMirror $ npm run start > magicmirror@2.26.0 start > DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js [06.02.2024 13:45.07.088] [LOG] Starting MagicMirror: v2.26.0 [06.02.2024 13:45.07.098] [LOG] Loading config ... [06.02.2024 13:45.13.961] [INFO] updatenotification: You are not using pm2I noticed also that pm2 had a folder which was in my home directory, NOT in the MagicMirror director. I took my test plaftorm, killed pm2, removed it, then installed it again from within the MagicMirror directory. After the install I did a pm2 status and saw that the .pm2 directory was again outside of the MagicMirror directory, so I trust that is expected behavior.
-
RE: Google Calendar issues
Thank you!! Good to know! I am not very good with Linux, knowing only enough to really foul things up.
-
RE: Google Calendar issues
I noticed that in the config file you included in a previous post that you do NOT have the default calendar module in there. My thoughts are that this MMM-MonthlyCalendar has some dependency on that the default module, and without it noted in the config you aren’t getting what you expect.
As a STARTING point I would recommending adding this to your config file. I’d suggest making sure THAT calendar is working. If it DOES show Holidays but your Google calendar is still NOT working, I would suggest removing the US Holiday link and replace it with your Google calendar link. Then try again.
Additionally, the config options for that module you are trying to use does NOT show url as a config option. That likely has to be called from the default module. A concern I am sure you are having is that you don’t want to SEE the default module. I HIGHLY recommend that you use it for the purposes of troubleshooting. Once you get to a point where the MMM-MonthlyCalendar starts working, simply remove or comment out the POSITION line for the default calendar module in your config.
Also, did you edit any of the files in the modules in any way? If so, you may want to remove them and install the module again.
{ module: "calendar", header: "US Holidays", position: "top_left", config: { calendars: [ { fetchInterval: 7 * 24 * 60 * 60 * 1000, symbol: "calendar-check", url: "https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics" } ] } }, -
RE: MMM-CalendarExt3 color formatting
I understand 100% what you are saying, I had this same issue. What you are experiencing is the DEFAULT of CX3, that is how it looks if you don’t edit anything. By default the ICON next to the event will be the color you configured, but the event text will all be white. To change this you will need to edit your CUSTOM css file, DO NOT edit the css file inside of the module. I started off making that same mistake. The trouble in doing that, is that when a module gets updated, you lose anything you did. The customizations should be done in that custom.css file and should be backed up. Copy the code below into your ~MagicMirror/css/custom.css file, save, then refresh the browser window (I use the MMM-Remote-Control to refresh mine remotely), and you should see it load with the colors you configured in the default calendar module.
* CalendarExtende3 */ /* Sets event titles to configured color */ .CX3A .event .description { display: none; } .CX3A .event .location { display: none; }I have 10 different calendars which my default calendar loads, all of which are displayed in CX3 with no issues.
-
RE: Default Calendar Module not showing some recurring events.
Thank you so much for that!! I haven’t deployed my mirror yet, I just have it running headless with a remote screen that I check every few days to make sure things are still looking good. I noticed the other day that some of the recurring events weren’t full day events disappeared. I was convinced that I had screwed something up on the config side. It took spinning up a duplicate system as a test using default config with just my calendars to realize that the issue wasn’t on my side.
I also ran the rollback, and everything is solid once again.
-
RE: MMM-CalendarExt3Agenda
Thank you so much for the awesome module!! I am enjoying both the EXT3 view for a 3 week peek, and use the Agenda for only the events for the current day.
Does this module allow for symbols to be used on full day events? I have the full day events with symbol without issue on the EXT3 calendar, as well as 3 vanilla calendars I use to note what upcoming birthdays, anniversaries, and holidays there are, and it works there as well. The symbols DO work in Agenda for events that have a begin and end time.
In looking at the css files for both modules, I noticed that there are more configurations for symbols in the EXT3 versus the EXT3A css. Is there something that I am missing that I need to do in order to enable them specifically for the Agenda module?
From the module .css file for MMM-CalendarExt3:
.CX3 .event .headline .symbol { order: 1; } .CX3 .event.singleday .headline:not(.useSymbol)::before, .CX3 .event.singleday .headline.useSymbol .symbol.noSymbol::before { content: "⬤"; color: var(--calendarColor); display: inline-block; padding-right: 2px; font-size: 75%; } .CX3 .event .headline:not(.useSymbol) .symbol { display: none; } .CX3 .event .headline.useSymbol .symbol { display: inline-block; padding-right: 2px; font-size: 75%; align-self: center; } .CX3 .event.singleday .headline.useSymbol .symbol { color: var(--calendarColor); }From the module .css file for MMM-CalendarExt3Agenda:
.CX3A .event .headline .symbol { color: var(--calendarColor); font-size: 75%; vertical-align: text-bottom; } .CX3A .event .headline .symbol.noSymbol::after { content: "⬤"; } -
RE: MMM-CalendarExt3 CSS issue with full day event text colors, and MMM-CalendarExt3Agenda
@MMRIZE Thank you, I REALLY appreciate you pointing that out to me. I have gone through and removed and reinstalled all modules manually and moved all of the changes I made to the custom.css and also stopped changing defaults in the .js files and moved those desired changes directly to the config.js file. Saved my bacon from having HUGE headaches in the future with broken configs.
-
RE: MMM-CalendarExt3 CSS issue with full day event text colors, and MMM-CalendarExt3Agenda
Whew, I was able to FINALLY just now solve this issue after banging my head on the wall over and over again. An interesting thing is that the symbols in fullday and partial day events don’t use the same formatting, as you can see in my screenshot that the timed events have colored symbols, and the full day ones use the output I want to see, though I made no changes there. I backed out my change from the .event .headline .title line, and created a NEW line that changed it for ONLY events that are NOT full day events.
.CX3 .event .headline .title { color: var(--calendarColor); <---------- REMOVED .CX3 .event:not(.fullday) .headline .title { color: var(--calendarColor); }Additionally, I was able to figure out the Agenda issue no problem. I commented out the default lines in the CSS file for the description and location and added the display: none;, it works exactly the way I intended.
.CX3A .event .description { // overflow: hidden; // white-space: nowrap; // text-overflow: ellipsis; // max-width: 100%; // font-size: 90%; // color: lightgray; // padding-left: 20px; display: none; } .CX3A .event .location { // overflow: hidden; // white-space: nowrap; // text-overflow: ellipsis; // max-width: 100%; // font-size: 80%; // color: darkgray; // text-align: right; display: none; }I am still working on the other issues with the full day events colors being jacked up after changing the event titles and headlines
-
MMM-CalendarExt3 CSS issue with full day event text colors, and MMM-CalendarExt3Agenda
Good morning!
I am LOVING the MMM-CalendarExt3!! I am nearly ready to order a display for my project, just trying to iron out a few last wrinkles with the code. Last night I made a change so that the Events listed on the calendar are colored to match the calendar they belong to (using SEVERAL different calendars, all populate just fine, no issues there, each one has a different color for a different family member.
My end goal is to have the TIME for the events remain white, text for event be colored to match calendar color, full day events use BACKGROUND for calendar color but remain with white & black text as determined by the system based on the background color.
This is the ONLY change I have made that has had any effect. Making this change ALSO changed the text color for the all day events, but in the event.fullday it is still using oppositeColor.
.CX3 .event .headline .title { color: var(--calendarColor);I tried moving this section above the section mentioned previously but it had no impact.
.CX3 .event.fullday, .CX3 .event.multiday { background-color: var(--calendarColor); mix-blend-mode: difference; border-radius: 4px; color: var(--oppositeColor); }Here is what the calendar looks like with the event titles colored.

Also, and I’m sorry for lumping this into the same thread, with MMM-CalendarExt3Agenda, is there a way to select what information from the calendar is displayed? It defaults to showing just about all the event info, I’d like to keep it at just time, and event name if possible.
-
Suggestions on 27" display for NON-MIRROR?
Hey All,
I am messing about with Magic Mirror in a non-mirror project, and I am LOVING it. For the moment I have it connected to a 65" TV, but I’m testing it just using VNC from my PC. I am looking to set up a 27" display in my kitchen and am looking for display recommendations. I am currently thinking about getting this from Amazon - SAMSUNG 27" T35F. It is a 27 inch 1080 panel. I plan to build an enclosure for it, as it will be under hanging pots and pans, and want to make sure it doesn’t get dripped on as some of them drip dry hanging.
Thank you!!
-
RE: maximumEntries & fetchInterval in config.js aren't working, default values in calendar.js override them
Thank you!
I took the leap and opened Issue #3297 on GitHub. I hope I did it correctly, I just signed up for GitHub to create the issue, so I am not familiar with how it all works.
-
RE: maximumEntries & fetchInterval in config.js aren't working, default values in calendar.js override them
I am not 100% positive what that snippet of code means, but after an hour of googling, it sets fetchInterval to whatever is set in the config OR (if that is empty) use the default value in this file.
Anyhow, my issue has been solved, I do thank you for your assistance, I really appreciate it!
If there is anything you need me to provide regarding the issue I am seeing with the out of the box behavior with the fetchInterval I am more than happy to provide it, just let me know what you need and I will provide it if I can.
-
RE: maximumEntries & fetchInterval in config.js aren't working, default values in calendar.js override them
@sdetweil Thank you again for the information, but with that being the case, for me it is NOT working inside the calendar entry. I spun up a new Magic Mirror on identical hardware and software this morning, with the ONLY change to MM being the copy the config.js.sample to config.js, then running, and it was defaulting to 3.6 million ms which is 1 hour, rather than the 604.8 million ms which is 168 hours or 1 week.
Here is essentially what I did:
Raspbian - Raspberry PI OS Legacy 32 bit - configured with ONLY new username and Wifi credentials Enable VNC sudo apt update sudo apt upgrade sudo apt install -y ca-certificates curl gnupg git sudo mkdir -p /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg NODE_MAJOR=20 echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list sudo apt update sudo apt install nodejs -y git clone https://github.com/MichMich/MagicMirror cd MagicMirror/ npm run install-mm sudo npm install -g npm@10.2.5 cp config/config.js.sample config/config.js sudo dphys-swapfile swapoff sudo nano /etc/dphys-swapfile CONF_SWAPSIZE=1024 sudo dphys-swapfile setup sudo dphys-swapfile swapon npm run startHere is the full output of my test, key is the line just a few from the end:
https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics - Interval: 3600000Again, this is running without modifying ANY of the files, it is just as it cloned it from Git. Is this a quirk on my hardware, or is the fetchInterval not currently working under the calendar.
xxxxxxxx@raspberrypi:~ $ ls -l total 36 drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 20:48 Bookshelf drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Desktop drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Documents drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Downloads drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Music drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Pictures drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Public drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Templates drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Videos xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ sudo apt update Hit:1 http://raspbian.raspberrypi.org/raspbian bullseye InRelease Hit:2 http://archive.raspberrypi.org/debian bullseye InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done 6 packages can be upgraded. Run 'apt list --upgradable' to see them. xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ sudo apt upgrade Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done The following package was automatically installed and is no longer required: libfuse2 Use 'sudo apt autoremove' to remove it. The following packages will be upgraded: chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra xserver-common xserver-xorg-core xwayland 6 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 126 MB of archives. After this operation, 1,224 kB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://archive.raspberrypi.org/debian bullseye/main armhf chromium-browser-l10n all 120.0.6099.102-rpt1 [6,436 kB] Get:2 http://archive.raspberrypi.org/debian bullseye/main armhf chromium-browser armhf 120.0.6099.102-rpt1 [110 MB] Get:3 http://archive.raspberrypi.org/debian bullseye/main armhf chromium-codecs-ffmpeg-extra armhf 120.0.6099.102-rpt1 [1,024 kB] Get:4 http://archive.raspberrypi.org/debian bullseye/main armhf xserver-common all 2:1.20.11-1+rpt3+deb11u10 [2,285 kB] Get:5 http://archive.raspberrypi.org/debian bullseye/main armhf xserver-xorg-core armhf 2:1.20.11-1+rpt3+deb11u10 [3,352 kB] Get:6 http://archive.raspberrypi.org/debian bullseye/main armhf xwayland armhf 2:1.20.11-1+rpt3+deb11u10 [2,970 kB] Fetched 126 MB in 42s (3,035 kB/s) Reading changelogs... Done (Reading database ... 106663 files and directories currently installed.) Preparing to unpack .../0-chromium-browser-l10n_120.0.6099.102-rpt1_all.deb ... Unpacking chromium-browser-l10n (120.0.6099.102-rpt1) over (119.0.6045.171-rpt1) ... Preparing to unpack .../1-chromium-browser_120.0.6099.102-rpt1_armhf.deb ... Unpacking chromium-browser (120.0.6099.102-rpt1) over (119.0.6045.171-rpt1) ... Preparing to unpack .../2-chromium-codecs-ffmpeg-extra_120.0.6099.102-rpt1_armhf.deb ... Unpacking chromium-codecs-ffmpeg-extra (120.0.6099.102-rpt1) over (119.0.6045.171-rpt1) ... Preparing to unpack .../3-xserver-common_2%3a1.20.11-1+rpt3+deb11u10_all.deb ... Unpacking xserver-common (2:1.20.11-1+rpt3+deb11u10) over (2:1.20.11-1+rpt3+deb11u8) ... Preparing to unpack .../4-xserver-xorg-core_2%3a1.20.11-1+rpt3+deb11u10_armhf.deb ... Unpacking xserver-xorg-core (2:1.20.11-1+rpt3+deb11u10) over (2:1.20.11-1+rpt3+deb11u8) ... Preparing to unpack .../5-xwayland_2%3a1.20.11-1+rpt3+deb11u10_armhf.deb ... Unpacking xwayland (2:1.20.11-1+rpt3+deb11u10) over (2:1.20.11-1+rpt3+deb11u8) ... Setting up chromium-codecs-ffmpeg-extra (120.0.6099.102-rpt1) ... Setting up chromium-browser (120.0.6099.102-rpt1) ... Setting up chromium-browser-l10n (120.0.6099.102-rpt1) ... Setting up xserver-common (2:1.20.11-1+rpt3+deb11u10) ... Setting up xwayland (2:1.20.11-1+rpt3+deb11u10) ... Setting up xserver-xorg-core (2:1.20.11-1+rpt3+deb11u10) ... Processing triggers for mailcap (3.69) ... Processing triggers for desktop-file-utils (0.26-1) ... Processing triggers for hicolor-icon-theme (0.17-2) ... Processing triggers for gnome-menus (3.36.0-1) ... Processing triggers for libc-bin (2.31-13+rpt2+rpi1+deb11u7) ... Processing triggers for man-db (2.9.4-2) ... xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ sudo apt-get install -y ca-certificates curl gnupg git Reading package lists... Done Building dependency tree... Done Reading state information... Done ca-certificates is already the newest version (20210119). curl is already the newest version (7.74.0-1.3+deb11u10). git is already the newest version (1:2.30.2-1+deb11u2). gnupg is already the newest version (2.2.27-2+deb11u2). The following package was automatically installed and is no longer required: libfuse2 Use 'sudo apt autoremove' to remove it. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ sudo mkdir -p /etc/apt/keyrings xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ NODE_MAJOR=20 xxxxxxxx@raspberrypi:~ $ echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ sudo apt update Get:1 https://deb.nodesource.com/node_20.x nodistro InRelease [12.1 kB] Hit:2 http://raspbian.raspberrypi.org/raspbian bullseye InRelease Hit:3 http://archive.raspberrypi.org/debian bullseye InRelease Get:4 https://deb.nodesource.com/node_20.x nodistro/main armhf Packages [4,508 B] Fetched 16.6 kB in 2s (9,336 B/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date. xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ sudo apt install nodejs -y Reading package lists... Done Building dependency tree... Done Reading state information... Done The following package was automatically installed and is no longer required: libfuse2 Use 'sudo apt autoremove' to remove it. The following NEW packages will be installed: nodejs 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 28.1 MB of archives. After this operation, 185 MB of additional disk space will be used. Get:1 https://deb.nodesource.com/node_20.x nodistro/main armhf nodejs armhf 20.10.0-1nodesource1 [28.1 MB] Fetched 28.1 MB in 7s (4,298 kB/s) Selecting previously unselected package nodejs. (Reading database ... 106663 files and directories currently installed.) Preparing to unpack .../nodejs_20.10.0-1nodesource1_armhf.deb ... Unpacking nodejs (20.10.0-1nodesource1) ... Setting up nodejs (20.10.0-1nodesource1) ... Processing triggers for man-db (2.9.4-2) ... xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ ls -l total 36 drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 20:48 Bookshelf drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Desktop drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Documents drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Downloads drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Music drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Pictures drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Public drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Templates drwxr-xr-x 2 xxxxxxxx xxxxxxxx 4096 Dec 4 21:08 Videos xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ git clone https://github.com/MichMich/MagicMirror Cloning into 'MagicMirror'... remote: Enumerating objects: 25974, done. remote: Counting objects: 100% (332/332), done. remote: Compressing objects: 100% (184/184), done. remote: Total 25974 (delta 162), reused 276 (delta 128), pack-reused 25642 Receiving objects: 100% (25974/25974), 21.84 MiB | 3.61 MiB/s, done. Resolving deltas: 100% (16046/16046), done. xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ xxxxxxxx@raspberrypi:~ $ cd MagicMirror/ xxxxxxxx@raspberrypi:~/MagicMirror $ xxxxxxxx@raspberrypi:~/MagicMirror $ xxxxxxxx@raspberrypi:~/MagicMirror $ npm run install-mm > magicmirror@2.25.0 install-mm > npm install --no-audit --no-fund --no-update-notifier --only=prod --omit=dev npm WARN config only Use `--omit=dev` to omit dev dependencies from the install. > magicmirror@2.25.0 postinstall > npm run install-vendor && npm run install-fonts && echo "MagicMirror² installation finished successfully! > " > magicmirror@2.25.0 install-vendor > echo "Installing vendor files ... > " && cd vendor && npm install --loglevel=error --no-audit --no-fund --no-update-notifier Installing vendor files ... added 10 packages in 58s > magicmirror@2.25.0 install-fonts > echo "Installing fonts ... > " && cd fonts && npm install --loglevel=error --no-audit --no-fund --no-update-notifier Installing fonts ... added 2 packages in 5s MagicMirror² installation finished successfully! > magicmirror@2.25.0 prepare > [ -f node_modules/.bin/husky ] && husky install || echo no husky installed. no husky installed. added 334 packages in 6m npm notice npm notice New patch version of npm available! 10.2.3 -> 10.2.5 npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.2.5 npm notice Run npm install -g npm@10.2.5 to update! npm notice xxxxxxxx@raspberrypi:~/MagicMirror $ xxxxxxxx@raspberrypi:~/MagicMirror $ xxxxxxxx@raspberrypi:~/MagicMirror $ sudo npm install -g npm@10.2.5 removed 11 packages, and changed 44 packages in 20s 28 packages are looking for funding run `npm fund` for details xxxxxxxx@raspberrypi:~/MagicMirror $ xxxxxxxx@raspberrypi:~/MagicMirror $ xxxxxxxx@raspberrypi:~/MagicMirror $ xxxxxxxx@raspberrypi:~/MagicMirror $ cp config/config.js.sample config/config.js xxxxxxxx@raspberrypi:~/MagicMirror $ xxxxxxxx@raspberrypi:~/MagicMirror $ sudo dphys-swapfile swapoff xxxxxxxx@raspberrypi:~/MagicMirror $ xxxxxxxx@raspberrypi:~/MagicMirror $ sudo nano /etc/dphys-swapfile xxxxxxxx@raspberrypi:~/MagicMirror $ sudo dphys-swapfile setup want /var/swap=1024MByte, checking existing: deleting wrong size file (104857600), generating swapfile ... of 1024MBytes xxxxxxxx@raspberrypi:~/MagicMirror $ xxxxxxxx@raspberrypi:~/MagicMirror $ xxxxxxxx@raspberrypi:~/MagicMirror $ sudo dphys-swapfile swapon xxxxxxxx@raspberrypi:~/MagicMirror $ xxxxxxxx@raspberrypi:~/MagicMirror $ npm run start > magicmirror@2.25.0 start > DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js [20.12.2023 10:38.28.775] [LOG] Starting MagicMirror: v2.25.0 [20.12.2023 10:38.28.794] [LOG] Loading config ... [20.12.2023 10:38.28.803] [DEBUG] config template file not exists, no envsubst [20.12.2023 10:38.28.826] [LOG] Loading module helpers ... [20.12.2023 10:38.28.832] [LOG] No helper found for module: alert. [20.12.2023 10:38.28.914] [LOG] Initializing new module helper ... [20.12.2023 10:38.28.916] [LOG] Module helper loaded: updatenotification [20.12.2023 10:38.28.924] [LOG] No helper found for module: clock. [20.12.2023 10:38.29.661] [LOG] Initializing new module helper ... [20.12.2023 10:38.29.664] [LOG] Module helper loaded: calendar [20.12.2023 10:38.29.669] [LOG] No helper found for module: compliments. [20.12.2023 10:38.29.673] [LOG] No helper found for module: weather. [20.12.2023 10:38.30.106] [LOG] Initializing new module helper ... [20.12.2023 10:38.30.107] [LOG] Module helper loaded: newsfeed [20.12.2023 10:38.30.108] [LOG] All module helpers loaded. [20.12.2023 10:38.30.132] [LOG] Starting server on port 8080 ... [20.12.2023 10:38.33.155] [LOG] Server started ... [20.12.2023 10:38.33.158] [LOG] Connecting socket for: updatenotification [20.12.2023 10:38.33.160] [LOG] Starting module helper: updatenotification [20.12.2023 10:38.33.162] [LOG] Connecting socket for: calendar [20.12.2023 10:38.33.163] [LOG] Starting node helper for: calendar [20.12.2023 10:38.33.164] [LOG] Connecting socket for: newsfeed [20.12.2023 10:38.33.166] [LOG] Starting node helper for: newsfeed [20.12.2023 10:38.33.167] [LOG] Sockets connected & modules started ... [20.12.2023 10:38.33.488] [LOG] Launching application. [2832:1220/103835.520076:ERROR:object_proxy.cc(590)] Failed to call method: org.freedesktop.portal.Settings.Read: object_path= /org/freedesktop/portal/desktop: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.portal.Desktop was not provided by any .service files MESA-LOADER: failed to retrieve device information MESA-LOADER: failed to retrieve device information MESA-LOADER: failed to retrieve device information ../../buildtools/third_party/libc++/trunk/include/vector:1473: assertion __n < size() failed: vector[] index out of bounds[2832:1220/103909.594196:ERROR:gpu_process_host.cc(957)] GPU process exited unexpectedly: exit_code=6 MESA-LOADER: failed to retrieve device information MESA-LOADER: failed to retrieve device information MESA-LOADER: failed to retrieve device information [2901:1220/103920.340951:ERROR:shared_image_manager.cc(217)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. [2901:1220/103921.092737:ERROR:shared_image_manager.cc(217)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. [2901:1220/103921.108810:ERROR:shared_image_manager.cc(217)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. [2901:1220/103921.123298:ERROR:shared_image_manager.cc(217)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. [2901:1220/103921.139159:ERROR:shared_image_manager.cc(217)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. [2901:1220/103921.155662:ERROR:shared_image_manager.cc(217)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. [2901:1220/103921.171791:ERROR:shared_image_manager.cc(217)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. [2901:1220/103921.186838:ERROR:shared_image_manager.cc(217)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. [2901:1220/103921.202814:ERROR:shared_image_manager.cc(217)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. [2901:1220/103921.218720:ERROR:shared_image_manager.cc(217)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. [2901:1220/103921.234435:ERROR:shared_image_manager.cc(217)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. [2901:1220/103921.248651:ERROR:shared_image_manager.cc(217)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. [2901:1220/103921.277456:ERROR:shared_image_manager.cc(217)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. [2901:1220/103921.288642:ERROR:shared_image_manager.cc(217)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. ../../buildtools/third_party/libc++/trunk/include/vector:1473: assertion __n < size() failed: vector[] index out of bounds[2832:1220/103926.104153:ERROR:gpu_process_host.cc(957)] GPU process exited unexpectedly: exit_code=6 MESA-LOADER: failed to retrieve device information MESA-LOADER: failed to retrieve device information MESA-LOADER: failed to retrieve device information [2876:1220/103933.639804:ERROR:command_buffer_proxy_impl.cc(128)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer. ../../buildtools/third_party/libc++/trunk/include/vector:1473: assertion __n < size() failed: vector[] index out of bounds[2832:1220/103942.045012:ERROR:gpu_process_host.cc(957)] GPU process exited unexpectedly: exit_code=6 [20.12.2023 10:40.52.148] [LOG] Create new calendarfetcher for url: https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics - Interval: 3600000 [20.12.2023 10:40.55.368] [LOG] Create new newsfetcher for url: https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml - Interval: 300000 [20.12.2023 10:40.55.898] [INFO] Checking git for module: MagicMirror [20.12.2023 10:41.13.460] [INFO] Calendar-Fetcher: Broadcasting 13 events from https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics. [20.12.2023 10:41.18.983] [INFO] Newsfeed-Fetcher: Broadcasting 25 items. ^C^C^C^C/home/xxxxxxxx/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT xxxxxxxx@raspberrypi:~/MagicMirror $ ^CAlso, for clarity in case I am not communicating it correctly:
DOES NOT work:{ module: "calendar", header: "US Holidays", position: "top_left", config: { calendars: [ { fetchInterval: 7 * 24 * 60 * 60 * 1000, symbol: "calendar-check", url: "https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics" } ] } },DOES work:
{ module: "calendar", header: "US Holidays", position: "top_left", config: { fetchInterval: 7 * 24 * 60 * 60 * 1000, calendars: [ { symbol: "calendar-check", url: "https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics" } ] } }, -
RE: maximumEntries & fetchInterval in config.js aren't working, default values in calendar.js override them
Thank you for confirming that for me. That was an oversight on my part in my very late hours working on it this morning. I apologize for the boneheaded lack of observation. I read the documents, but was basing my findings on where I originally found the fetchInterval in the sample config. I moved it outside the config, didn’t think about moving it inside config but outside calendar.
That all said, there IS AN ISSUE with a file on the github. The file config.js.sample has the fetchInterval in the wrong location. In it’s present location, the sample config hits the Holiday calendar once an hour rather than once a week.
Here is a direct copy and paste from gitHub file:
module: "calendar", header: "US Holidays", position: "top_left", config: { calendars: [ { fetchInterval: 7 * 24 * 60 * 60 * 1000, symbol: "calendar-check", url: "https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics" } ] } },To fix the issue, LINE - 58 - fetchInterval: 7 * 24 * 60 * 60 * 1000, should be relocated to LINE 56
calendars: [ should be moved down to LINE 57 -
maximumEntries & fetchInterval in config.js aren't working, default values in calendar.js override them
Good day to everyone! I am a VERY new user to Magic Mirror. I tried getting it working on a Raspberry Pi Zero W a few months ago to no avail and gave up. I recently got a number of Raspberry Pi Zero 2 W units, and just got Magic Mirror working this week for the first time ever.
While messing about with the calendar, I stumbled upon an issue, I don’t know if it is specific to Magic Mirror in general, or with my specific hardware & software version.
What I found is that SOME of the variables in the config.js file have NO effect, instead using the default values configured in the calendar.js file. I found that I am NOT able to configure SOME of the variables under the module section, most specifically maximumEntries & fetchInterval. The ONLY thing I have adjusted in the config.js file is duplicating the calendar module, and adjusting the max entries and fetch int to see if I could find out why default was overriding what is configured.
Other things in the config do work like position and header, though they aren’t defined in the calendar.js file. The url is, but that I CAN change without issue. For grins I commented out the fetchInterval from the calendar.js, and the fetch runs continuously to the point that the calendar instances disappear. If only the maxEntries is commented out, the config.js entries STILL have zero impact.
I am hoping this is something I am just overlooking that is a DUH kind of thing as a new user.
Hardware:
Hardware : BCM2835 Revision : 902120 Serial : 000000005664a900 Model : Raspberry Pi Zero 2 W Rev 1.0Software:
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)" NAME="Raspbian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=raspbian ID_LIKE=debianConfig.js
{ module: "calendar", header: "US Holidays", position: "top_left", maximumEntries: "2", fetchInterval: 604800000, config: { calendars: [ { symbol: "calendar-check", url: "https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics" } ] } }, { module: "calendar", header: "TEST", position: "top_left", maximumEntries:5, fetchInterval: 1000, config: { calendars: [ { symbol: "calendar-check", url: "https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics" } ] } },Default configs from calendar.js
// Define module defaults defaults: { maximumEntries: 10, // Total Maximum Entries fetchInterval: 60 * 60 * 1000, // Update every hourConsole output after MM is started MANUALLY:
[20.12.2023 00:30.41.830] [LOG] Create new calendarfetcher for url: https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics - Interval: 3600000 [20.12.2023 00:30.44.465] [LOG] Create new calendarfetcher for url: https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics - Interval: 3600000