A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

Categories

  • Announcements regarding the MagicMirror software and forum.

    63 Topics
    424 Posts
    KristjanESPERANTOK
    [2.33.0] - 2025-10-01 Thanks to: @Crazylegstoo, @dathbe, @m-idler, @plebcity, @khassel, @KristjanESPERANTO, @rejas and @sdetweil! ⚠️ This release needs nodejs version v22.18.0 or higher Added Add configuration option for User-Agent, used by calendar & news module (#3255) [linter] Add prettier plugin for nunjuck templates (#3887) [core] Add clear log for occupied port at startup (#3890) Changed [clock] Add CSS to prevent line breaking of sunset/sunrise time display (#3816) [core] Enhance system information logging format and include additional env and RAM details (#3839, #3843) [refactor] Add new file js/module_functions.js to move code used in several modules to one place (#3837) [refactor] Use global.root_path where possible and add tests for config:check (#3883, #3885, #3886, #3889) [tests] refactor: simplify jest config file (#3844) [tests] refactor: extract constants for weather electron tests (#3845) [tests] refactor: add setupDOMEnvironment helper function to eliminate repetitive JSDOM setup code (#3860) [tests] replace console with Log in calendar debug.js to avoid exception in eslint config (#3846) [tests] speed up e2e tests, cleanup and stabilize weather e2e tests, update snapshot url (#3847, #3848, #3861) [tests] refactor translation tests (#3866) Remove sinon dependency in favor of Jest native mocking Unify test helper functions across translation test suites Rename setupDOMEnvironment to createTranslationTestEnvironment for consistency Simplify DOM setup by removing unnecessary Promise/async patterns Avoid potential port conflicts by using port 3001 for translator unit tests Improve test reliability and maintainability [tests] add alert module tests for different welcome_message configurations (#3867) [lint-staged] use prettier --write --ignore-unknown in lint-staged to avoid errors on unsupported files (#3888) Updated [calendar] Update defaultSymbol name and also the link to the icon search site (#3879) [core] Update dependencies including electron to v38 as well as github actions (#3831, #3849, #3857, #3858, #3872, #3876, #3882, #3891, #3896) [weather] Update feels_like temperature calculation formula (#3869) [weather] Update null value handling for weather type (#3892) [layout] Update styles for weather and calendar (#3894) Fixed [calendar] Fixed broken unittest that only broke on the 1st of July and 1st of january (#3830) [clock] Fixed missing icons when no other modules with icons is loaded (#3834) [weather] Fixed handling of empty values in weathergov providers handling of precipitationAmount (#3859) [calendar] Fix regression handling of limit days (#3840) [calendar] Fixed regression of calendarfetcherutils.shouldEventBeExcluded (#3841) [core] Fixed socket.io timeout when server is slow to send notification, notification lost at client (#3380) [tests] refactor AnimateCSS tests after jsdom 27 upgrade (#3891) [weather] Use apparent_temperature data from openmeteo’s hourly weather for current feelsLikeTemp (#3868). [weather] Updated envcanada Provider to use new database/URL schema for accessing weather data (#3878).
  • Discuss the MagicMirror² core framework.

    486 Topics
    4k Posts
    plainbrokeP
    @ge You might try MMM-GmailFeed, it allows sound when mail arrives. Just set it to playSound: true, Not sure what that sound is, because I have no speakers on my MM.
  • Anything harware related can be found here.

    789 Topics
    7k Posts
    R
    @alexa123 as already stated Pi5 is kind of oversized. I had build up two identical mirrors - one for me and later on a second one (a clone) for a fried of mine. My own is on a Pi5/8GB which was always hot and the power supply was hot as well - which led to some major modifications in my mirror setup because I had to move the power supply out of the frame - which was not that easy, annoying and unsatisfying… The ONLY fact that IS useful and is an argument for the Pi5 is the really smooth integration of a NVME SSD disk which I had performed and am happy with. The fan on the pi5 is HUGE ! (NOT the „official Pi 5 fan“ tiny thingi which isn’t sufficient). Picture of fan The second mirror (clon) is software-wise nearly identical but is installed on a (spare) Pi4 which layed around so it was no problem to overhand it to my friend. This is performance/capacity wise identical and MUCH colder. The SD-card reliability problem on this Pi4 is solved with an USB-SSD-Stick. Today I might go for the Pi4 again… Good luck! Ralf
  • Add exciting new features to your mirror.

    6k Topics
    57k Posts
    C
    hello @wishmaster270 , Ok, thanks, I will try!
  • Make your mirror your own but modifying its appearance.

    429 Topics
    3k Posts
    T
    Hi all ! I’ve been using MM for quite many years now without any issues. However, my old 4:3 montor used in my MM is dying and I need to replace it with something newer and brighter. As can be seen in the attached image, the current monitor is covering the area marked with the orange box and the new monitor will cover the green box. Is there some clever way to use CSS (or another way) to tell MM to not use the part of the new screen where the red box is ? (And yes, the upper narrow rectangle glass is also prepared to be used with a screen.) [image: 1762396385667-mymirror.png] Cheers and TIA ! /Mathias
  • Share your project story with pictures.

    568 Topics
    5k Posts
    H
    @jamesarm It was a regular off the shelf mirror in a frame. I just removed the actual mirror portion from the frame and replaced it with 4mm tinted glass.
  • You have a problem with your mirror? Ask for help.

    5k Topics
    35k Posts
    S
    @ankonaskiff17 is MagicMirror auto starting? Stop it
  • A place to talk about whatever you want.

    1k Topics
    9k Posts
    D
    @sdetweil Thanks Sam. Here is my config for the default calendar module: { module: “calendar”, header: “Upcoming Events”, position: “top_left”, config: { maximumEntries: 10000, // 10 maximumNumberOfDays: 120, // 365 (30May25 - changed from 50) pastDaysCount: 0, // 0 displaySymbol: true, // true defaultSymbol: “calendar”, // calendar showLocation: true, // false maxTitleLength: 50, // 25 maxLocationTitleLength: 50, // 25 wrapEvents: true, // false wrapLcoationEvents: false, // false maxTitleLines: 3, // 3 maxEventTitleLines: 3, // 3 fetchInterval: 300000, // 300000 (5 minutes) animationSpeed: 2000, // 2000 (2 seconds) fade: false, // true fadePoint: 0.25, // 0.25 tableClass: “small”, // small,xsmall, medium, large, xlarge displayRepeatingCountTitle: false, // false dateFormat: “MMM Do”, // MMM Do dateEndFormat: “HH:mm”, // HH:mm showEnd: true, // true showEndsOnlyWithDuration: false, // false fullDayEventDateFormat: “MMM Do”, // MMM Do timeFormat: “relative”, // relative, absolute, dateheaders getRelative: 6, // 6, 0=absolute urgency: 7, // 7 broadcastEvents: true, // true hidePrivate: false, // false hideOngoing: false, // false broadcastPastEvents: true, // false sliceMultiDayEvents: false, // false nextDaysRelative: false, // false limitDays: 0, // 0 limitDaysNeverSkip: false, // false flipDateHeaderTitle: false, // false=left, true=right hideTime: false, // false hideDuplicates: true, // true showTimeToday: false, // false coloredBorder: false, // false coloredBackground: false, // false updateOnFetch: true, // true coloredText: false, coloredSymbol: true, customEvents: [ {keyword: ‘Birthday’, symbol: ‘cake’, color: ‘White’}, {keyword: ‘Greens’, symbol: ‘recycle’, color: ‘Orange’}, {keyword: ‘Recycling’, symbol: ‘recycle’, color: ‘Green’}, {keyword: “Anniversary”, symbol: ‘ring’, color: ‘Gold’}, ], tableClass: “xsmall”, calendars: [ { // Added : 26-Apr-23 color: “#8B0000”, // dark red symbol: “users”, url: ‘https://calendar.google.com/calendar/ical/user1/basic.ics’, }, { // Added : 26-Apr-23 color: “#00008B”, // dark blue symbol: “male”, url: ‘https://calendar.google.com/calendar/ical/user2/basic.ics’, }, { // Added : 26-Apr-23 color: “#A020F0”, // purple symbol: “female”, url: ‘https://calendar.google.com/calendar/ical/user3/basic.ics’, }, { // Added : 26-Apr-23 color: “#023020”, // green symbol: “male”, url: ‘https://calendar.google.com/calendar/ical/user4/basic.ics’, }, ] } },