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
    TAGinsideT
    MMM-Bambulink is a third-party module for MagicMirror² designed to display information about your Bambu Lab printer directly on your MagicMirror screen. The module connects to your printer over the local network using Bambu Lab’s LAN credentials and updates information automatically at a configurable interval. NOT NEED ONLY LAN MODE [image: 1778943557011-example.png] Key Requirements To use this module, you need: The IP address of your Bambu Lab printer (for local discovery/communication) The LAN connection code (access code) for your printer The serial number of your printer These three values are required in the configuration to establish the connection to your printer. Key Features Monitor your Bambu Lab printer directly from MagicMirror² Secure LAN connection via MQTT/TLS on port 8883 Configurable refresh interval for real-time updates Optional thumbnail display for the current print Simple installation within the standard MagicMirror module structure Customizable thumbnail path for printer-specific previews Development Status The module is functional and ready for use in a standard MagicMirror² environment, with installation steps, Node.js dependencies, and an update procedure clearly documented in the README. The current README is concise and focuses on core setup; detailed feature listings, supported printer states, error handling, and advanced views are not yet fully documented, suggesting the project is still evolving. Compatibility MMM-Bambulink is designed for MagicMirror², as installation requires cloning into ~/MagicMirror/modules and adding configuration to config/config.js. The required parameters (ip, accessCode, serial, mqttPort, useTLS) indicate it targets Bambu Lab printers with LAN mode enabled and MQTT access over a secure tunnel. Installation Navigate into your MagicMirror’s modules folder: cd ~/MagicMirror/modules Clone the repository: git clone https://github.com/TAGinside/MMM-Bambulink Navigate into the new MMM-Bambulink folder: cd MMM-Bambulink Install the Node dependencies: npm install Configuration Add the module to the modules array in your config/config.js: modules: [ { module: "MMM-Bambulink", position: "top_left", config: { ip: "x.x.x.x", // IP address of the printer accessCode: "xxxxxxxx", // LAN Connection Code serial: "XXXXXXXXXXXXXXX", // Serial number of the printer mqttPort: 8883, useTLS: true, updateInterval: 5000, // Refresh interval in ms showThumbnail: true, thumbnailPath: "modules/MMM-Bambulink/thumbnails/H2S.png", } }, ] How to Use the Module To use this module, add it to the modules array in your config/config.js file as shown above, then restart MagicMirror. Once running, the module will display Bambu Lab printer information in the chosen position (e.g., top_left) on your MagicMirror. Update cd ~/MagicMirror/modules/MMM-Bambulink git pull npm ci After updating, restart MagicMirror. Use Cases This module is particularly useful in a workshop, technical office, or home lab where a MagicMirror already serves as a central dashboard. With this display, you can quickly monitor a print in progress, verify that the printer is responsive, or keep a visual overview of the current job without constantly opening Bambu Studio. About MMM-Bambulink brings Bambu Lab printer monitoring directly to your smart mirror, allowing you to integrate 3D print status into a broader home automation or workshop dashboard. This module is open source and free to use and modify. For more information, updates, or to contribute, visit the GitHub repository: https://github.com/TAGinside/MMM-Bambulink If you try this module, let me know if it works with your printer and MagicMirror setup. Feedback and suggestions are welcome to help shape its future UX IN CONSTRUCTION
  • 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
    S
    @RonR wasn’t me. Karsten does the docker container, he replied with the link
  • 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'