MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    • Profile
    • Following 0
    • Followers 5
    • Topics 18
    • Posts 269
    • Groups 1
    SnilleS Offline
    1. Home
    2. Snille
    3. Topics
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Topics

    • SnilleS

      MMM-TautulliLatest

      Watching Ignoring Scheduled Pinned Locked Moved Entertainment
      1
      2 Votes
      1 Posts
      839 Views
      SnilleS
      Here is a module for displaying the “latest” added Movies and TV-Shows from your Plex server (using Tautulli). MMM-TautulliLatest Overview: [image: 1775513898971-a5f1ab7e-b991-41dd-86bc-52de79a925df-image.jpeg] Click/Pointed on a “cover” view: [image: 1775513937913-05dd85ee-d982-4513-91ad-458c5aee1a43-image.jpeg] Exaple config: { module: "MMM-TautulliLatest", position: "middle_center", config: { tautulliProtocol: "http", tautulliHost: "192.168.1.50", tautulliPort: 8181, tautulliApiKey: "YOUR_TAUTULLI_API_KEY", itemLimit: 8, updateInterval: 5 * 60 * 1000, posterWidth: 150, posterHeight: 225, posterMaxWidth: 150, posterMaxHeight: 225, detailPosterWidth: 400, detailPosterHeight: 600, showWatchedBadge: true, user_id: 123456 } }
    • SnilleS

      MMM-Videoplayer - Play video files on your mirror

      Watching Ignoring Scheduled Pinned Locked Moved Entertainment
      20
      2 Votes
      20 Posts
      10k Views
      SnilleS
      @elitecybernet Hi! Yes, default is “no sound”, because if you set it to yes, it will not “autoplay”. But you can just change the option: muted to false. { module: 'MMM-Videoplayer', position: 'middle_center', config: { muted: false, } }, Like so… :)
    • SnilleS

      MMM-HomeAssistant-Sensors (Development) - Show your HA Sensors on your Mirror

      Watching Ignoring Scheduled Pinned Locked Moved Utilities
      66
      5 Votes
      66 Posts
      57k Views
      luisestradaL
      @joecas65 said in MMM-HomeAssistant-Sensors (Development) - Show your HA Sensors on your Mirror: @Snille Hi, is it possible to add a line separator between sensors ? thanks I like the way the MMM-MyScoreboard does, by adding this line border-bottom: solid 1px #222; You can add it to your custom.css file (for more info about how to write in css, check https://forum.magicmirror.builders/topic/6808/css-101-getting-started-with-css-and-understanding-how-css-works?_=1677609386326)
    • SnilleS

      MagigMirror on Airtame!

      Watching Ignoring Scheduled Pinned Locked Moved Hardware
      1
      3 Votes
      1 Posts
      2k Views
      SnilleS
      Hi all! Just wanted you all to know that you CAN actually use an Airtame to display the mirror! If you setup a “serveronly” instance of MM and then point your Airtame’s “Homescreen Backround” to a website and enter the URL to your MM (Server) there. It shows up! Of course you cant have any “touch” functionality and other “intelligence” on the Airtame. But if you just want to display stuff without interaction directly on the device it works great! You can also still use the “MMM-Remote” module to control what’s displayed on the device of course. Or why not MMM-Scheduler… :) I have tried this on an Airtime running with firmware version 3.0.0-b6. Enjoy!
    • SnilleS

      Multi module install script

      Watching Ignoring Scheduled Pinned Locked Moved Troubleshooting
      3
      3 Votes
      3 Posts
      2k Views
      cowboysdudeC
      That is awesome!!!
    • SnilleS

      Raspberry PI 3 Box for Big Passive Cooling Heat Sink.

      Watching Ignoring Scheduled Pinned Locked Moved Hardware
      3
      2 Votes
      3 Posts
      3k Views
      SnilleS
      @Mykle1 I’m not sure of the temp before the heat sink. I never really payed any attention to it. I had already decided to use a big passive heat sink after reading trough some threads here. So I never tried running the mirror without a heat sink when it was built. But now when it’s all complete, It’s hovering around 50-55 degrees celsius when all is up and running. Even if I switch profiles, show, hide modules and “use” the mirror so to speak. :)
    • SnilleS

      Snilles Magic Mirror Project

      Watching Ignoring Scheduled Pinned Locked Moved Show your Mirror
      45
      15 Votes
      45 Posts
      72k Views
      SnilleS
      Big update: I let Home Assistant take over the mirror completely It has been a while. This is the largest change I have made to the mirror since I moved off the Raspberry Pi, and since a lot of you here run Home Assistant too, I thought the whole story was worth writing down — including the part where I found out my mirror had been quietly burning a CPU core for years. It started with a fan The NUC was loud. Not “something is broken” loud, just always-working loud. I finally sat down to find out why, and the renderer process was sitting at 88% of a core, all day, every day. The cause turned out to be wonderful: Three MMM-Snow instances were running. In July. Invisible. They are scheduled to appear on three days a year. The rest of the time they are hidden — and hidden in MagicMirror does not mean stopped. hide() sets opacity: 0, not display: none. Their 90 snowflakes kept animating, 180 infinite CSS animations, holding the page at a steady 60fps around the clock. On its own that is cheap. The expensive part was that MMM-ImmichSlideShow had a fullscreen photo on screen, and that photo had to be re-rastered on every one of those 60 frames per second. Two A/B tests confirmed it — hide the photo and CPU went 88% → 12%; pause the snow and it went 88% → 9%. Neither half was the problem. The combination was. The bigger problem underneath With the snow disabled, CPU dropped to ~41%. Better. But then I counted what was actually on screen: 16 modules visible at once. The complete wather profile, plus the Immich slideshow on top of it. That is when I understood that four independent things were writing to the same visibility state, none of them aware of the others, none using MagicMirror’s locking: Controls Triggered by MMM-ModuleScheduler class groups cron MMM-ProfileSwitcher the profile (exclusive) CURRENT_PROFILE Node-RED / HA individual modules presence, sensors MMM-Modulebar individual modules touch Only ProfileSwitcher is exclusive — set_profile() walks every module and either shows or hides it. The other three only touch what they point at and leave the rest alone. So my presence sensor showed the photo slideshow when nobody was there, but nothing ever told the other fifteen modules to go away. The globe kept spinning WebGL, the news feed kept scrolling, weather and electricity prices kept updating — all behind a picture nobody could see past. The intent was right. The transport was wrong. The fix: one owner The rule I settled on is simple: MMM-ProfileSwitcher is the only thing that sets visibility. Node-RED changes the profile instead of changing modules. That means: MMM-ModuleScheduler is removed — its global_schedule, notification_schedule and module_schedule all moved into Node-RED defaultClass: "Photos", so the resting state is the slideshow includeEveryoneToDefault stays off, so resting state is the photo alone — walk up, presence fires, the profile comes up and brings the button bars with it ProfileSwitcher’s timers removed, so there is only one thing deciding when to go back Now everything that is not part of the profile gets hide()d, and therefore suspend()ed. The one CSS line everyone here should copy This is the part I would have wanted to know years ago: /* css/custom.css */ .module.hidden { content-visibility: hidden; } Module.suspend() in the base class is an empty hook. If a module does not implement it — and most do not — it keeps running when hidden. content-visibility: hidden skips style, layout, paint and animation for the entire subtree, so a hidden module genuinely costs nothing. The price is that a module disappears instantly instead of fading out. Worth it. The missing piece: the profile as a real HA entity Here is the thing that made it all click, and the reason this is worth a post rather than a footnote. I use MMM-HomeAssistant (my fork of ambarusa’s), which publishes every module as an MQTT switch entity. Great — but there was no way for Home Assistant to see or set the profile. So I added one. profileControl: true now publishes a select entity: { module: "MMM-HomeAssistant", config: { moduleControl: true, profileControl: true, profiles: ["Photos", "Night", "Work", "Weather", "Media", ...], } } select.magic_mirror_hallway_profile Selecting an option sends CURRENT_PROFILE — the same notification the on-screen buttons send. And the state is read back from ProfileSwitcher’s CHANGED_PROFILE notification, which it emits on every change including the one it makes at startup. That last detail is what makes it genuinely useful: the entity always shows what the mirror is really displaying, even when someone pressed a button on the mirror itself. So Node-RED can tell its own command apart from a human, and hold a manual choice for 20 minutes before handing back to the schedule. Without that feedback, an automation can only fire and hope — and it will happily fight the person standing in front of the mirror. The profile names have to be listed in the config because Home Assistant validates against them, and there is no way to discover them: a profile is only ever a class name on some module. What Node-RED looks like now All of it lives on one tab. Two decisions, both edge-triggered — nothing is sent unless it differs from what the mirror reports: 1. Which profile? One function node, with the whole schedule as a table at the top. No cron strings, no month indices to get wrong: const SCHEDULE = [ { profile: "NewYear", date: "12-31", always: true, from: "23:45", to: "23:59" }, { profile: "Halloween", date: "10-31", from: "05:55", to: "23:00" }, { profile: "Work", days: [1,2,3,4,5], from: "08:00", to: "16:00" }, { profile: "Weather", days: [1,2,3,4,5], from: "16:01", to: "20:29" }, { profile: "Media", days: [0,1,2,3,4,5,6], from: "20:30", to: "23:00" }, ]; Precedence: dark screen → night → always rows → a choice made at the mirror → nobody there → the table. 2. The overlays. MagicMirror profiles are single-axis; my mirror is not. Printer cameras, the Bird Buddy panels, the Halloween video and a birthday background all come and go on events, not on the profile. Since set_profile() is exclusive it wipes them on every profile change. The solution needs no code: give them a class no profile uses, so they are always hidden by default, and have Node-RED re-assert them right after each profile change. Between changes it stays quiet — which is exactly what leaves MMM-Modulebar free to toggle things by hand. “Always hidden by default” is the right way to be wrong: at worst something is missing for a second, instead of unwanted content flashing up. Birthdays became a nice example. Instead of a whole Birthday profile that replaces whatever is up, it is now one overlay rule: swap the background picture, keep the profile. Results Before After Modules visible when idle 16 1 Renderer CPU 41.3% 12.4% Xorg CPU 18.6% 0.1% Things writing visibility 4, unlocked 1 Profile visible in HA no a real entity, both directions (Those are after the snow was already dealt with. Counting that, the renderer went from 88% to 12%.) The Xorg number is the one that tells the real story — 18.6% to 0.1% means the repainting actually stopped, rather than merely becoming invisible. The mirror is also just nicer now. Empty hallway: one photo, nothing else. Walk up: the right profile appears with the buttons. Walk away: back to the photo. Screen off at night puts it on an empty profile so nothing renders at all until morning. Things that bit me along the way MMM-Remote-Control’s fuzzy module matching. If the exact identifier does not exist it falls back to matching module names, and runs the action on every hit. A wrong module number in my flow meant every Bird Buddy visit lit up all ten of my MMM-homeassistant-sensors instances — silently, for years. I tested module_05_MMM-Profilepicture against my mirror recently: 10 hits. If you address modules by number, check them. Module indices include disabled modules. Setting disabled: true does not renumber anything. Handy, but not obvious. The cron package changed month indexing from 0-11 to 1-12. My Halloween, New Year and birthday schedules had silently never fired — two of them threw “no execution date within 8 years” and were simply ignored. Xorg’s -dpms flag is not xset -dpms. On the X server command line it removes the extension. My screen had not actually been turning off at all since the reinstall. A profile can never be truly empty. everyone modules show in every profile except the default one. I use that on purpose now — the night profile keeps the two button bars, which cost nothing. Would I recommend it? If you run MagicMirror with Home Assistant and more than a handful of modules: yes, and the CSS line above regardless. The mental shift is small but it changes everything — stop telling the mirror which modules to show, and start telling it which mode it is in. Everything else follows, and you stop being able to get into contradictory states at all. Happy to share the Node-RED flow or the module config if anyone wants a starting point. Just ask. 🙂
    • SnilleS

      Listening to only 127.0.0.1:8080...

      Watching Ignoring Scheduled Pinned Locked Moved Troubleshooting
      3
      0 Votes
      3 Posts
      4k Views
      SnilleS
      @Cato said in Listening to only 127.0.0.1:8080...: address: “0.0.0.0”, Ah! Thank you! :) Worked!
    • SnilleS

      MMM-Chart - View your graphs on your Mirror

      Watching Ignoring Scheduled Pinned Locked Moved Utilities
      21
      8 Votes
      21 Posts
      23k Views
      S
      @turntablist2 u can use any language u like. I created a conversion script in JavaScript for one person. It’s knowing your data, and how you would organized it into items you would chart. Draw the chart on paper, what are the x and y axis?, how do you get your data into points along the line.
    • SnilleS

      Plexpy Module...

      Watching Ignoring Scheduled Pinned Locked Moved Requests
      4
      3 Votes
      4 Posts
      4k Views
      I
      This would be great. + 1
    • SnilleS

      MMM-Profilepicture - Add individual background pictures to your profiles.

      Watching Ignoring Scheduled Pinned Locked Moved Utilities
      2
      2 Votes
      2 Posts
      3k Views
      Nystro0mN
      Thanks alot for the module! Works lika a charm. For everyone that wants to use a local image, you could use this as your url: http://127.0.0.1:8080/modules/MMM-Profilepicture/pictures/YOURIMAGE.jpg And as provided in the link, the image should be located in /modules/MMM-Profilepicture/pictures/
    • SnilleS

      Activate Profiles (via MMM-ProfileSwitcher) using MMM-Remote-Control...

      Watching Ignoring Scheduled Pinned Locked Moved Troubleshooting
      7
      0 Votes
      7 Posts
      5k Views
      ceddirrC
      @snille Hello Snilles how are you? I’ve been stuck for ages trying to do the same thing (switch profile on demand) with scripts or Google Home. The reason is: I can’t find any php or js function to (as you said) “visit” URL:s --> because you have to be in a browser You can add commands on Google Home via IFTTT request, which only uses external IP! Would you have any idea that could help me please? Thank you very much for your help, Cedric
    • SnilleS

      Font Awesome Update...

      Watching Ignoring Scheduled Pinned Locked Moved Development
      4
      0 Votes
      4 Posts
      3k Views
      R
      I propused the idea mentioned before https://github.com/MichMich/MagicMirror/pull/775
    • SnilleS

      MMM-Modulebar - A module that adds touch buttons for showing/hiding other modules.

      Watching Ignoring Scheduled Pinned Locked Moved Utilities
      16
      4 Votes
      16 Posts
      14k Views
      SnilleS
      @gaudouy Hi, no, it can only show and hide one/ or multiple instances of the same type of module on one button, but not two different types of modules on one button.
    • SnilleS

      Build on Benja...

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      1
      2 Votes
      1 Posts
      1k Views
      SnilleS
      Hi all, I’m currently working on a Digital Photo Frame. When looking for a good place to start I found this: https://benja.io It’s basically ARCH with only Electron running. Not only that, it’s fully Hardware accelerated! :) I thought, maybe the MagicMirror² can use this as a base instead of a Raspbian Jessie (Lite) installation as it is today. Maybe you guys already knew about this. But in case you didn’t I just wanted to let you know. :) I’m also building a MM of course. :) Best regards Erik
    • SnilleS

      Splitting zone...

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      1
      0 Votes
      1 Posts
      1k Views
      SnilleS
      Hi all, I’m trying to save space on my mirror to be. I’m thinking if it would be possible to make a module where you can “split” a zone. Or rather arrange other modules in another way in a zone. As it is now you can basically only decide what module is on top and the order the modules are added under each other in config. I would like to be able to put modules beside each other as well. Here is an example: This is my current left top corner: [image: 1485642704444-current.png] This is how I would like it to be: [image: 1485642723039-tobe.png] So, I want to move the “moon” to beside the clock, but still be in the top_left. Is this possible? Thank you all for this great project! :)
    • SnilleS

      MMM-Sonos - To show what your SONOS is playing.

      Watching Ignoring Scheduled Pinned Locked Moved Entertainment
      29
      2 Votes
      29 Posts
      30k Views
      M
      I started my magic mirror project recently and I am struggling to customize the module as follows: Module on the Left side of the Mirror: [image: 1689078541993-3d2dca81-f65b-43d0-b8ef-92943b46c273-grafik.png] Could somebody please be so kind and share the changes I need to make.
    • SnilleS

      When weather updates module unhides...

      Watching Ignoring Scheduled Pinned Locked Moved Troubleshooting
      8
      0 Votes
      8 Posts
      5k Views
      A
      @Snille I’m using the MMM-Echo module for my face recognition and to show and hide modules depending on the person. If you ignore the fact that the Weather and Forecast modules don’t hide until the first person has “logged out”, it works great.
    • 1 / 1