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

    Dec 24, 2019, 7:40 AM
    0 Votes
    7 Posts
    2k Views
    Figured I’d comment here for those that still use it or may want to. The website updated the code and it broke the module. I created a new pull request to fix it. Not sure this will get merged into main, but given it’s a static module with no updates in 6 years, it’s pretty safe to just manually replace the code in your local module. https://github.com/rahultadak/MMM-CalvinAndHobbes/pull/3/files Otherwise, I have forked it here. Not planning on updating it unless it breaks again and even then it will be as time allows. https://github.com/B3DTech/MMM-CalvinAndHobbes
  • Made a birthday module

    Jan 19, 2025, 11:43 AM
    1
    7 Votes
    39 Posts
    3k Views
    @plainbroke Yes, that might do the trick! If MagicMirror manages to keep the two settings in sync.
  • 0 Votes
    7 Posts
    196 Views
    @sdetweil we did these steps
  • MMM-trakt-ondeck

    Mar 3, 2025, 3:09 AM
    1 Votes
    2 Posts
    144 Views
    Trakt is a fantastic tool for keeping track of your favorite shows, progress, and upcoming episodes. If you’re ever looking to promote content like TV shows or movies to the right audience, digital marketing can play a vital role. At ixoric, a trusted [digital marketing company, we specialize in creating strategies that help businesses connect with their audience effectively—whether it’s through social media, targeted ads, or content marketing. Let us know if you’d like to learn more about how we can help your brand shine!
  • 0 Votes
    20 Posts
    1k Views
    @sdetweil MMM-BackgroundSlideshow seems to do exactly what I want, but I think your handling of formatting the images is better.
  • Let it snow now Magic Mirror

    Dec 11, 2024, 1:39 PM
    3 Votes
    23 Posts
    2k Views
    @sdetweil Yes, I understand, but it’s not the cost itself that’s the issue (although it would have been a problem if there was a cost). The concern is having to provide my credit card details. It’s not that I distrust OpenWeather, but I prefer not to share them unnecessarily. You never know, for example, if they might get hacked.
  • 5 Votes
    7 Posts
    1k Views
    @KristjanESPERANTO Now that’s a whole new approach. Thanks, it works!
  • MMM-Fireworks

    Dec 29, 2024, 9:44 PM
    3 Votes
    15 Posts
    1k Views
    Hi, I’ve just released an update to solve several requests and problems. https://github.com/ChrisF1976/MMM-Fireworks Multiple Scheduled Events: The module now accepts an array of scheduled events (each with its own start time and text message). At each event time, the fireworks start with the corresponding overlay text. Two separate notifications have been added: NotificationStart (e.g. “FireFireFire”) starts the fireworks immediately using either the notification’s payload text or a default (textNotification). NotificationStop (e.g. “StopFire”) stops the fireworks immediately if they are running. When a notification is received, it overrides the scheduled events temporarily without affecting future scheduled shows. See also updated config! You can test the notifications with this simple module. I used it during development. I created a small start and stop button you can use. If you want to test the notification sender module you need to change the “fullscreen_above” to any other region of the mirror. Otherwise you cannot click on the buttons because they’re “behind” the MMM-Fireworks module… Config: { module: "MMM-NotificationSender", position: "top_left", config: { startNotification: "FireFireFire", stopNotification: "StopFire", startText: "Test me!", //leave blank to use text from MMM-Fireworks stopText: "Stop Fire", //nothing happens currently - maybe not needed } }, Module: Module.register("MMM-NotificationSender", { // Default configuration options. These can be overwritten in config.js. defaults: { // Notification names to send. Other modules can listen to these names. startNotification: "START_NOTIFICATION", stopNotification: "STOP_NOTIFICATION", // Text payloads for the notifications. startText: "This is a start notification.", stopText: "This is a stop notification." }, // Called when the module is started start: function() { Log.info("Starting module: " + this.name); }, // Override the getDom method to create your custom UI. getDom: function() { // Create a wrapper element to contain the buttons. var wrapper = document.createElement("div"); wrapper.style.textAlign = "center"; // Create the Start button var startBtn = document.createElement("button"); startBtn.innerHTML = "Start"; startBtn.style.marginRight = "10px"; startBtn.addEventListener("click", this.sendStartNotification.bind(this)); wrapper.appendChild(startBtn); // Create the Stop button var stopBtn = document.createElement("button"); stopBtn.innerHTML = "Stop"; stopBtn.addEventListener("click", this.sendStopNotification.bind(this)); wrapper.appendChild(stopBtn); return wrapper; }, // Function to send the start notification sendStartNotification: function() { // Log to console and MagicMirror logs to check the button click event. console.log("Start button pressed. Sending start notification..."); Log.info( "Sending start notification: " + this.config.startNotification + " with payload: " + JSON.stringify({ text: this.config.startText }) ); // Send the notification with the configured name and payload. this.sendNotification(this.config.startNotification, { text: this.config.startText }); }, // Function to send the stop notification sendStopNotification: function() { // Log to console and MagicMirror logs to check the button click event. console.log("Stop button pressed. Sending stop notification..."); Log.info( "Sending stop notification: " + this.config.stopNotification + " with payload: " + JSON.stringify({ text: this.config.stopText }) ); // Send the notification with the configured name and payload. this.sendNotification(this.config.stopNotification, { text: this.config.stopText }); } });
  • Bird of the day

    Dec 3, 2024, 3:43 PM
    1
    4 Votes
    5 Posts
    716 Views
    @cgillinger We are really enjoying the Bird of the Day on the MagicMirror! Not sure if this was just a problem for me, but we were finding the same birds were being displayed and they were almost all ducks. I think the nuthatch API was always using the “Default value : 1” for page and “Default value : 25” for pageSize, so there were only 25 possible birds. With the pageSize of 25 I think there are a maximum of 15 pages in their database. I fudged my .js file like this, but there is probably a better was to do this, I’m not a developer. Something to consider for future updates getBird: function () { const randPage = Math.floor(Math.random() * 15) + 1; const endpoint = this.config.endpoint + "&page=" + randPage; fetch(endpoint, { headers: { "api-key": this.config.apiKey }, })
  • 0 Votes
    2 Posts
    810 Views
    I know this is an old thread, but I just came across this today. I found you can fix this by putting limitComicHeight: false, in your config This is what mine looks like and it works great. { disabled: false, module: 'MMM-CalvinAndHobbes', position: 'middle_center', classes: "calvin", config: { invertColors: false, grayScale: false, updateInterval: 1000 * 60 * 60 * 12, limitComicHeight: false, } } I also had to adjust my css because of the zoom, but you may not need to. #cahcomiccontent { zoom: 80%; }
  • 0 Votes
    1 Posts
    159 Views
    I created a very simple and lightweight background wallpaper module. It also exposes 3 URLs to control your wallpaper using your devices like phone and smart watch gestures. Here is the link to my github repository https://github.com/sumitnsit/MMM-Wallpaper [image: 1735054247091-example-resized.jpg] Control Slideshow using API Remote URL Description http://{IP Address}:8080/next Loads next wallpaper and pauses the slideshow for 30 seconds http://{IP Address}:8080/last Loads previous wallpaper and pauses the slideshow for 30 seconds http://{IP Address}:8080/resume Resume the slideshow if you want it to resume before 30 seconds pause. Control slide show using iPhone’s Shortcuts You can create shortcuts on iPhone’s Shortcuts app to control the slideshow using your iPhone Create a new shortcut Add Get contents of from actions and add URL for next/last/resume. Be a magician in font of MagicMirror and control wallpaper with your hand gestures. Go to Settings > Accessibliity > AssistiveTouch > Hand Gestures Assign gestures to shortcuts created ealiear. Tap > Last DoubleTap > Next Clench > Resume [image: 1735054239781-watch.jpeg]
  • New module: Weather effects

    Dec 28, 2024, 11:52 AM
    3
    4 Votes
    27 Posts
    1k Views
    @uros76 awesome… also no idea why it wouldn’t work before
  • 1 Votes
    1 Posts
    111 Views
    Hi guys, I’ve created a new module. My motivation was to see what’s up around me in my city. I’ve missed so many events in my life, so I was searching for an event reminder. But I didn’t find anything that fits to my belongings. So I decided to create something on my own: MMM-EventSearch The MMM-EventSearch module for MagicMirror fetches and displays event information using the SerpAPI to search for events based on a given query, location, and other parameters. It uses in this case google (see SerpApi for other options) and displays the list results from google which everyone has seen already. To find a suitable query go to goolge and try a little for your city or surrounding city/provice/state. The results are currently limited to the the results that google initally shows. So the “mode results” button does not work or is not accessible with this API! The module dynamically generates a table with event details, displaying: Date/Time: Event’s date and time. Title: The title of the event. Image: A thumbnail image of the event, if available, which links to the event’s page. Event Fetching: Events are refreshed periodically based on the updateInterval. On the free plan from SerpAPI 100 calls are free per month. So be careful. CSS Styling is a little acc. to Google results. [image: MMM-EventSearch.png?raw=true] Have fun! Cheers Chris.
  • 0 Votes
    1 Posts
    81 Views
    I created a very simple and lightweight background wallpaper module. It also exposes 3 URLs to control your wallpaper using your devices like phone and smart watch gestures. Here is the link to my github repository https://github.com/sumitnsit/MMM-Wallpaper
  • MMM-MovieListings

    Mar 13, 2017, 7:16 AM
    1 Votes
    29 Posts
    16k Views
    @sdetweil This is the results junior@MAGIC-MIRROR:~/MagicMirror/modules/MMM-MovieListings $ git pull hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following hint: commands sometime before your next pull: hint: hint: git config pull.rebase false # merge (the default strategy) hint: git config pull.rebase true # rebase hint: git config pull.ff only # fast-forward only hint: hint: You can replace “git config” with “git config --global” to set a default hint: preference for all repositories. You can also pass --rebase, --no-rebase, hint: or --ff-only on the command line to override the configured default per hint: invocation. Updating e095eb5…b4f37fc error: Your local changes to the following files would be overwritten by merge: package-lock.json Please commit your changes or stash them before you merge. Aborting
  • MMM-S3Photos

    Nov 5, 2024, 12:58 AM
    1 Votes
    1 Posts
    180 Views
    I created a module to allow you to display (and upload) images from AWS S3. you can read more about the features on the github repo but in short the module has your standard affair when it comes to displaying images along with some scripts to both deploy aws resources and allow you to upload photos to the s3 bucket from the pi. There are a couple quirks i am still working on ironing out but thought i would share. the aws cost for 10gb of photos stored on the free tier should be about 30 cents monthly if you follow the recommended settings, and <4.5GB should stay within the free tier entirely. https://github.com/uphillcheddar/MMM-S3Photos
  • 2 Votes
    8 Posts
    681 Views
  • MMM-MovieListings

    Oct 4, 2024, 4:30 PM
    2
    2 Votes
    28 Posts
    3k Views
    UPDATES V1.1.0 Fixed issue with cast list appending cast members from different movies to the same list. Now only cast members of the displayed movie is displayed. Update and simplify the API calls to reduce the number of calls.
  • MMM-Globe

    Moved May 11, 2017, 7:55 PM
    4 Votes
    118 Posts
    126k Views
    @sdetweil thank you very much!
  • MMM-GooglePhotos

    Jul 20, 2018, 3:15 PM
    2
    1 Votes
    294 Posts
    231k Views
    @1a2a3a fullscreen_below