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.

    66 Topics
    427 Posts
    karsten13K
    Release Notes Thanks to: @cgillinger, @khassel, @KristjanESPERANTO, @sonnyb9 ⚠️ This release needs nodejs version >=22.21.1 <23 || >=24 (no change to previous release) Compare to previous Release v2.35.0 This release falls outside the quarterly schedule. We opted for an early release due to: Security fix for the internal cors proxy API change of the weather provider smi Several bug fixes Breaking Changes The cors proxy is now disabled by default. If required, it must be explicitly enabled in the config.js file. See the documentation. ⚠️ Security You can find several publicly accessible MagicMirror² instances. This should never be done. Doing so makes your entire configuration, including secrets and API keys, publicly visible. Furthermore, it allows attackers to target the host; this is only prevented beginning with this release. Public MagicMirror² instances should always run behind a reverse proxy with authentication. [core] Prepare Release 2.36.0 (#4126) Allow HTTPFetcher to pass through 304 responses (#4120) fix(http-fetcher): fall back to reloadInterval after retries exhausted (#4113) config endpoint must handle functions in module configs (#4106) fix replaceSecretPlaceholder (#4104) restrict replaceSecretPlaceholder to cors with allowWhitelist (#4102) fix: prevent crash when config is undefined in socket handler (#4096) fix cors function for alpine linux (#4091) fix(cors): prevent SSRF via DNS rebinding (#4090) add option to disable or restrict cors endpoint (#4087) fix: prevent SSRF via /cors endpoint by blocking private/reserved IPs (#4084) chore: add permissions section to enforce pull-request rules workflow (#4079) update version for develop [dependencies] update dependencies (#4124) chore: update dependencies (#4088) refactor: enable ESLint rule “no-unused-vars” and handle related issues (#4080) [modules/newsfeed] fix(newsfeed): prevent duplicate parse error callback when using pipeline (#4083) [modules/updatenotification] fix(updatenotification): harden git command execution + simplify checkUpdates (#4115) fix(tests): correct import path for git_helper module in updatenotification tests (#4078) [modules/weather] fix(weather): use nearest openmeteo hourly data (#4123) fix(weather): avoid loading state after reconnect (#4121) weather: fix UV index display and add WeatherFlow precipitation (#4108) fix(weather): restore OpenWeatherMap v2.5 support (#4101) fix(weather): use stable instanceId to prevent duplicate fetchers (#4092) SMHI: migrate to SNOW1gv1 API (replace deprecated PMP3gv2) (#4082) [testing] ci(actions): set explicit token permissions (#4114) fix(http_fetcher): use undici.fetch when dispatcher is present (#4097) ci(codeql): also scan develop branch on push and PR (#4086) refactor: replace implicit global config with explicit global.config (#4085)
  • Discuss the MagicMirror² core framework.

    493 Topics
    4k Posts
    S
    @Bungle68 there is no auto update. You can go the manual install/update or use the scripted install/update. For the base. See the doc, alternative install My script are first there There are various mechanisms for modules
  • Anything harware related can be found here.

    797 Topics
    7k Posts
    B
    It’s easy to forget that while OLED is the biggest concern for burn-in, older LCDs can still suffer from image persistence if things stay static for too long. Moving the modules around slightly or using a screen saver script is such a practical way to extend the life of the hardware.
  • Add exciting new features to your mirror.

    6k Topics
    58k Posts
    S
    @TiLow awesome! As moderator here, I think my job is to help users make and keep their mirrors running. Watch for trouble and find ways to resolve it. Your clear description of the problem helped identify a good resolution. I didn’t do any of the work. Just connected the dots.
  • Make your mirror your own but modifying its appearance.

    433 Topics
    3k Posts
    S
    @KristjanESPERANTO I don’t run ext3 all the time, just to test. But this is such a core value. I think because of the ext modules color and symbol were added to the broadcast data Lots of features are turned on by default, week number, blah blah, and use css to turn them off. This seems simple to be default and hard for others to do ( witness wasted time here and another
  • Share your project story with pictures.

    577 Topics
    5k Posts
    J
    @mrchips83 Thanks for sharing. Interest is peeked again! Think I’m going to dive back into MM.
  • You have a problem with your mirror? Ask for help.

    5k Topics
    36k Posts
    N
    @wyovino I find a very easy setup to be a server on an RPi3 A+ and the client in kiosk mode on an RPi Zero 2W. This also gives one the option of having multiple clients attached to one server. I’m an (old) engineer and a minimalist so I chose DietPi for my OS. This results in very little lag while easily maintaining them via ssh. Total power consumption at full load is 5.5W (3.2W + 2.3W) versus the 4.6W for the Model 3 B+, but incrementally you get power savings as you add more clients. Cost wise, this is also more effective if you have multiple clients. On the server side, I created scripts to install MM and eliminated the need for pm2 in favor of using services, as this save significantly on memory usage (RPi3 A+ only has 512MB of RAM). DietPi + bare services + dropbear + MM server take up only 194-206MB of RAM. Swap varies from 0-30MB. I do not have a lot of modules running. The basic Calendar, Weather, MMM-RAIN-MAP plus a module I create for to capture and display Ring camera snapshots (currently called MMM-RingSnapshot). On the client side, I created a script to perform the most basic installation which reduces all display resources to bare X and chromium. Total is 240-248MB running DietPi + chromium in kiosk mode with no windows manager. Swap varies from 0-120MB while running. I was thinking of posting the scripts on GitHub, but I’m not certain there is appetite for something that is non-standard for MM. YMMV
  • A place to talk about whatever you want.

    1k Topics
    10k Posts
    M
    Your issue is that VLC on the Pi 4 renders video in a separate window by default, ignoring the MagicMirror module position. To fix it, set pixel dimensions instead of percentages and add localPlayerArgs: ‘–no-video-on-top --width=640 --height=360’ so VLC respects the module container. Example: position: "top_center", moduleWidth: 640, moduleHeight: 360, localPlayer: 'vlc', localPlayerArgs: '--no-video-on-top --width=640 --height=360'