Hello,
I’ve decided to try to build a magic mirror and, since I’m still in the planning stage, my biggest doubt is which Raspberry to buy.
On one hand I’d like to get a RPi 5, on the other hand the Raspberry will be on 24/7 and the latest model is power hungry, especially compared to older ones.
Also more power means an higher electrical bill and more heat to dissipate (since it will be in a closed frame that’s obviously a problem both because of the enclosed nature of the installation and because of the small space available so I cannot use big heat sinks or fans).
Cost is not an issue since RPi4 costs more or less equal to RPi5
If this helps, I plan to use just a few modules:
a calendar
an IR touch screen
some kind of home assistant module to get some data out of HA
-(optional) a face recognition module, still debating on this tho.
The monitor will be a standard 1920x1080p@60Hz and I don’t plan to do much with MM but these few things (no audio in or out, no AI, no animations).
Which Raspberry would work best in my scenario?
Is RPi 3B+ too old? Is 4B better? Or do I just go with 5?
And, last but not least, how much RAM do I actually need?
I don’t want to buy one to find myself in need of an upgrade in 6 month or 1 year.
Thank you in advance!
I am working on a project where I want to have 7-9 modules stacked either horizontally or vertically.
By default, modules stack vertically. So, if you have three “weather” modules for London, New York, and Toronto, they will look like this:
London Weather
New York Weather
Toronto Weather
This would make sense on a vertical/portrait screen, where stacked makes sense. However, if you have a horizontal/landscape screen, you might run out of space, and it might look weird. Having them side by side might make more sense, like this:
London Weather | New York Weather | Toronto Weather
I spent a non-trivial amount of time trying to override the main.css file’s “flex-drection” settings using the custom.css, but I was unable to do so. I ended up breaking the cardinal rule and modified a file that could be overwritten by future updates.
Would it be possible to have somewhere that could be changed in the config.js? Or, is there an easy way to override using custom.css that I was just too brain-fogged to see?
Thank you.
I found myself wanting to add a Notion database with a Date field to my MM.
I realized Notion did not have an .ics field, and after considering making an applet that could convert the Notion API into an iCalendar feed, I realized I could do it within MagicMirror itself.
Introducing MMM-NotionCalendar! This allows you to generate an iCalendar feed compatible with the default Calendar module (and others) from a Notion database.
This already supports any named “Name” and “Date” fields, as well as adding any custom filtering on the database.
Because this module requires a rather dense URL to operate, I created a simple app to format the URLs for you, hosted in GitHub pages off of the repository.
Let me know if there is anything you would want added!
Hey all-- I cannot figure out a way to get the available todo lists to work for my use case, which I feel like must mean I’m missing something. I have a multi-page family dashboard, and I want a separate chores list for each member of the family to appear on their page. These are recurring chores, so they should get refreshed daily. Also, I want to be able to clear tasks with the touchscreen. So far I’ve tried:
MMM-Chores. Most excited about this-- has everything I want, except that I can’t display separated task lists on each person’s page.
MMM-TodoList. Has separated task lists and touchscreen clearing, but no recurring tasks.
MMM-CalDAV-Tasks. Looks like it could do the job, but apparently it doesn’t work with iCloud? I can’t get it to work, and I found active/unanswered threads in GitHub that it’s just not compatible with iCloud. So I’d have to setup a NextCloud server just to use it?
MMM-Todoist. No touchscreen check off capabilities. Looks like it’s the same with MMM-GoogleTasks?
Is this just such a niche use case that none of the available tools can do this? Or have I missed something? Thanks!
After completely reinstalling my MMM, the MMM-Universal PIR module no longer works for
I get the error message
GPIOcommand exited with error
My configuration is as follows
{
module: "MMM-Universal-Pir",
position: "top_right",
config: {
gpioCommand: "gpiomon -r -b gpiochip0 17",
onCommand: "wlr-randr --output HDMI-A-1 --on --transform 90",
offCommand: "wlr-randr --output HDMI-A-1 --off",
deactivateDelay: 180 * 1000,
}
},
The cables are connected with the sixth pin and the first and third pins on the other line.
I tried the solution in the here on the bottom but unfortunately I cannot found a compose.yaml.
It would be great, if you can help me.
Thank you in advance.
Klinge
A MagicMirror² module for displaying animated countdown timers with celebration effects when your events arrive!
Features
Four Counter Styles - Flip clock, progress rings, animated hourglass & digital clock
Celebration Animation - Customizable falling emoji particles when your event arrives
Arrival Glow Effect - Counter boxes pulse with a glowing effect when countdown reaches zero
Responsive Scaling - Automatically scales to fit any MagicMirror region width
Grayscale Mode - Inverted grayscale option for classic MagicMirror aesthetic
Screenshot
All Four Counter Styles
flip (with celebration animation), rings, hourglass and digital, each with its own personality.
[image: hero-all-styles-clean.gif]
Repository: https://github.com/ElliAndDad/MMM-AnimatedCountdowns
Re: [MMM-Pages and MMM-page-indicator](how to select the page?)
i did put on pages but I don’t have a touch screen would the frame touch screen work in front or behind mirror glass ?
i add pages but my calendar stopped loading and so did my weather module ? I’ve add my config to a post troubleshoot .
any help please
this is my config file if I remove the page everything show up fine but with pages installed I lose the weather saying loading and the calendar but sometime the calendar
var config = {
address: "localhost",
port: 8080,
basePath: "/",
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],
useHttps: false,
language: "en",
locale: "en-US",
logLevel: ["INFO", "LOG", "WARN", "ERROR"],
timeFormat: 24,
units: "metric",
modules: [
{
// MMM-pages controller
module: "MMM-pages",
config: {
modules: [
["MMM-OpenWeatherMapForecast", "clock"], // Page 1
["calendar", "clock"], // Page 2
["MMM-OpenWeatherMapForecast", "calendar", "clock", "compliments", "newsfeed"], // Page 3 (All)
["MMM-OpenWeatherMapForecast", "calendar", "clock", "compliments", "newsfeed"] // Page 4 (All)
],
fixed: ["MMM-MotionDetector"], // Keeps motion detector running in the background
rotationTime: 10000, // Optional: auto-rotates every 10 seconds. Remove if you want manual control.
}
},
{
module: 'MMM-page-indicator',
position: 'bottom_bar',
config: {
activeBright: true,
}
},
{
module: "clock",
position: "top_left"
},
{
module: "calendar",
header: "US Holidays",
position: "top_left",
config: {
calendars: [
{
fetchInterval: 7 * 24 * 60 * 60 * 1000,
symbol: "calendar-check",
url: "https://calendar.google.com"
}
]
}
},
{
module: "MMM-OpenWeatherMapForecast",
header: "Weather",
position: "top_right",
config: {
apikey: "192baf050dxxxxxxxxf1a10d32088c93fb",
latitude: 51.5775,
longitude: -0.1786,
iconset: "4c",
forecastLayout: "table"
}
},
{
module: "compliments",
position: "lower_third"
},
{
module: "MMM-MotionDetector",
config: {
captureIntervalTime: 1000,
scoreThreshold: 200,
timeout: 3000
}
},
{
module: "newsfeed",
position: "bottom_bar",
config: {
feeds: [
{
title: "BBC England",
url: "https://feeds.bbci.co.uk"
}
]
}
}
]
};
if (typeof module !== "undefined") { module.exports = config; }
shows up on different boot ups?
any help please
Hello, I just updated my mm, I was 2 or 3 versions late…
I am encountering a problem in the default calendar module with the caldav.icloud calendars.
I have quite a few errors like this :
[2026-01-27 13:57:15.127] [ERROR] [calendar] Moment Timezone has no data for GMT+0100. See http://momentjs.com/timezone/docs/#/data-loading/.
I should point out that the calendars are still well displayed by the mirror.
Thanks for seeing
How do I go about getting a wizard.mp4 for the module?
I do not have the equipment to make one of myself.
I would like to have one of Harry Potter or Dumbeldor or Miany.
Not sure how to spell them, just know what my wife says she likes…
Any help would be appreciated.
Maybe some place I can download a premade mp4
I tried a couple I found on line but they will not work.
Do they have to be under a certain size?
Hallo,
mir werden die automatisierten wiederkehrenden Termine nicht im Kalender angezeigt, Egal ob endlos oder bis zu einem Datum habe schon alles versucht und keine Lösung gefunden.
Ich beziehe die ics Datei über MMM-Caldav da ich einen synologykalender habe. wenn ich die ics Datei öffne sehe ich diese Termine die mir im Kalender fehlen
vielleicht habt ihr noch eine Idee danke
lg
Patrick
english: (moderator)
The automated recurring appointments are not showing up in my calendar, regardless of whether they are set to repeat indefinitely or until a specific date. I’ve tried everything and haven’t found a solution.
I’m retrieving the .ics file via MMM-Caldav because I use a Synology calendar. When I open the .ics file, I can see the appointments that are missing from my calendar.
Perhaps you have another idea? Thank you.
Newb.
Have my MagicMirror2 up and running with a few different modules. I have local weather working with openmeteo. Trying to add a second location (bottom_right) but it stays stuck on “Loading…”.
I set up an openweathermap.org API key but I don’t get any weather data using the openweathermap provider for local or remote locations
Should I be able to see multiple locations?
Current config below. I’ve also tried a copy of the openmeteo modules to get the Brisbane weather but it did not work.
I searched for similar issues but couldn’t find anything newer than 2022 and the advice on that post didn’t help.
{
module: "weather",
position: "top_left",
header: "Current Weather",
config: {
weatherProvider: "openmeteo",
type: "current",
lat: [myLat],
lon: [myLong],
showPrecipitationAmount: true,
showPreciptitationProbability: true,
showUVIndex: true,
degreeLabel: true,
colored: true,
}
},
{
module: "weather",
position: "top_left",
header: "Forecast",
config: {
weatherProvider: "openmeteo",
type: "forecast",
lat: [myLat],
lon: [myLong],
showUVIndex: true,
fadePoint: 0.33,
maxNumberOfDays: 6,
degreeLabel: true,
colored: true,
}
},
{
module: "weather",
classes: "brisWeather",
position: "bottom_right",
header: "Current Weather",
config: {
weatherProvider: "openweathermap",
type: "current",
location: "Brisbane, AU",
locationID: "2174003",
showPrecipitationAmount: true,
showPreciptitationProbability: true,
degreeLabel: true,
colored: true,
units: "metric",
apiKey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
}
},
{
module: "weather",
classes: "brisWeather",
position: "bottom_right",
header: "Forecast",
config: {
weatherProvider: "openweathermap",
type: "forecast",
location: "Brisbane, AU",
locationID: "2174003",
showUVIndex: true,
fadePoint: 0.33,
maxNumberOfDays: 5,
degreeLabel: true,
colored: true,
units: "metric",
apiKey: "xxxxxxxxxxxxxxxxxxxxxxxx",
}
},
I’ve created a new weather module, named MyWeatherForecast. I wanted a simple weather module, free weather information, and not too much fuss.
It has language support. Currently for Dutch, English, French and German.
I know, it’s one of many, but for me it’s nice and I hope you can enjoy it too!
MMM-MyWeatherForecast
This is a MagicMirror² module for weather information and an optional 4-day forecast. It only uses the weather information from PirateWeather with a free API.
Installation
Clone this repository in your modules folder, and install dependencies:
cd ~/MagicMirror/modules
git clone https://github.com/htilburgs/MMM-MyWeatherForecast.git
cd MMM-MyWeatherForecast
npm install
Update
When you need to update this module:
cd ~/MagicMirror/modules/MMM-MyWeatherForecast
git pull
npm install
Configuration
Go to the MagicMirror/config directory and edit the config.js file.
Add the module to your modules array in your config.js.
{
module: "MMM-MyWeatherForecast",
position: "top_right",
header: "My WeatherForeCast",
disabled: false,
config: {
apiKey: "PUT_API_KEY_HERE",
latitude: "PUT_LAT_HERE",
longitude: "PUT_LON_HERE",
units: "metric", // metric or imperial
showForecast: true, // Show 4 day forecast
showLastUpdate: true, // Show when the data is last updated
showSunTimes: true, // Show Sun up and Sun Down information
lang: "en", // Select language nl, de, en, fr
updateInterval: 10 * 60 * 1000 //Updates every 10 minutes
}
},
To get your latitude and longitude, you can go to https://www.latlong.net/
To get your Pirate Weather API key, you can go to https://pirateweather.net/en/latest/
Versions
v1.0.0 - Initial release
My MagicMirror currently keeps crashing and generates core.xxxx files in the MagicMirror folder.
When I open the file with gdb, I get this:
gdb) core core.279811
warning: Can't open file anon_inode:[io_uring] during file-backed mapping note processing
[New LWP 279811]
[New LWP 279819]
[New LWP 279842]
[New LWP 279818]
[New LWP 279820]
[New LWP 279812]
[New LWP 279822]
[New LWP 279841]
[New LWP 279821]
[New LWP 279824]
[New LWP 279840]
[New LWP 279830]
[New LWP 279843]
Reading symbols from /home/pi/MagicMirror/node_modules/electron/dist/electron...
(No debugging symbols found in /home/pi/MagicMirror/node_modules/electron/dist/electron)
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
Core was generated by `/home/pi/MagicMirror/node_modules/electron/dist/electron js/electron.js --ozone-platform=wayland'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x000000556a30595c in uv.loop_interrupt ()
[Current thread is 1 (Thread 0x7f94d2b020 (LWP 279811))]
What is going on?
I am obsessed with the modul checker on the MagicMirror² 3rd Party Modules list…
so, i asked github copilot to implement an instant modul checker script.
technically it clones the modul checker repo, and the local files to /tmp/mm-modul-checker… and installs the deps.
you can find it in recently most active repo:
https://github.com/HeikoGr/MMM-Webuntis/blob/master/scripts/magicmirror-check.mjs
run it: node scripts/magicmirror-check.mjs and you will get:
> mmm-webuntis@0.6.1 check:mm
> node scripts/magicmirror-check.mjs
🔍 Setting up MagicMirror checker...
Fetching checker repository (git-free) via `degit` (first time only)...
📦 Installing dependencies...
✓ Copying local files (excluding node_modules)...
✓ Checking MMM-Webuntis (including uncommitted changes)
🔎 Running full module checks...
🔍 Running ESLint check on package.json...
================================================================================
MMM-Webuntis - MagicMirror Module Check Results
================================================================================
📋 Issues found (1):
1. Information: There are updates for 1 dependencie(s):
- prettier ^3.8.0 → ^3.8.1
================================================================================
📄 Results saved to: magicmirror-check-results.md
Compare with: https://modules.magicmirror.builders/result.html
================================================================================
💡 Tip: Use --cleanup to remove checker files after check
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.
Read the statement by Michael Teeuw here.
Categories
-
Announcements
Announcements regarding the MagicMirror software and forum.
-
Core System
Discuss the MagicMirror² core framework.
-
-
-
-
-
-



