@MyMirror
The humidity is already shown -> The humidity (💦)
The open window is already shown -> Open Window (🪟)
It will be shown in the status column when it appears in that zone.
Read the statement by Michael Teeuw here.
Posts
-
RE: MMM-MyTado
-
RE: PIR / MQTT - Presence sensor(s) revived
@rkorell
That’s correct!
At the end, because it currently just works with MMM-OnSpotify, it was not so difficult.I Will look into this in the near future to support other Player also.
-
MMM-HideModulesOnSpotify
MMM-HideModulesOnSpotify
This is a small Magic Mirror² module that can hide one ore more modules when MMM-OnSpotify starts.
The problem I had that my MagicMirror was full and the MMM-OnSpotify came over the other modules.
With this module, I have created a way to automatically hide a module when MMM-OnSpotify opens. When MMM-OnSpotify closes again, the original module is reloaded in its place.
This module loads automatically, but is not visible on the MagicMirror.
The only thing you can see is in the logs that the module has been loaded.Installation
Clone this repository in your modules folder, and install dependencies:
cd ~/MagicMirror/modules git clone https://github.com/htilburgs/MMM-HideModulesOnSpotify.git cd MMM-HideModulesOnSpotify npm installUpdate
When you need to update this module:
cd ~/MagicMirror/modules/MMM-HideModulesOnSpotify git pull npm installConfiguration
Go to the MagicMirror/config directory and edit the config.js file.
Add the module to your modules array in your config.js.{ module: "MMM-HideModulesOnSpotify", config: { modulesToHide: ["clock","calendar"] } },Configuration Options
Option Description modulesToHide Array of module(s) you like to hide. Fill in the exact module Name as in your config.js Versions
v1.0.0 (12-03-2026): Initial version
License
The MIT License (MIT)
Copyright © 2026 Harm Tilburgs
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
The software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
-
RE: PIR / MQTT - Presence sensor(s) revived
@rkorell
I see you’re even using one of my Modules (MMM-MyGarbage)My MusicPlayer (Volumio) is on the left side, too but is spreading the region if cover-art is appearing…Did you do something special for this, or is this an option in de Module?
Because when MMM-OnSpotify appears, it just go over everything that is standing there.
So for now I’ve disabled it and looking for a solution. -
RE: MMM-MyGarbage
Just published an update v3.0.0
- Add support for flexible numbers of Bins
- Bin names are automaticly detected
- Match bin colors to bin names for csv and ical
- Error message instead of “Loading…” when the CSV or ICAL is in wrong format
- Better debug information in console and in module
- Clean up code
Enjoy this new version and if you find any issues, please report them here
-
RE: PIR / MQTT - Presence sensor(s) revived
@rkorell
My current mirror
This is why I have it on the right. For me this feels better.
On the left side there comes the Spotify information, when I play music.
-
MMM-MySystem
MMM-MySystem
This is a Magic Mirror² module for the system information.
I now there are more 😉, but I built a version with a modern look and feel, suited for my needs.Installation
Clone this repository in your modules folder, and install dependencies:
cd ~/MagicMirror/modules git clone https://github.com/htilburgs/MMM-MySystem.git cd MMM-MySystem npm installUpdate
When you need to update this module:
cd ~/MagicMirror/modules/MMM-MySystem git pull npm installConfiguration
Go to the MagicMirror/config directory and edit the config.js file.
Add the module to your modules array in your config.js.{ module: "MMM-MySystem", position: "top_right", header: "System Information", disabled: false, config: { showHeader: true, showCpuUsage: true, showCpuTemp: true, showMemory: true, showDisk: true, showUptime: true, showIPeth: true, showIPwifi: true, tempUnit: "C" updateInterval: 10000 } }Configuration Options
Option Description showHeaderShow the header with Hostname, Model and OS Version
Options:true/false- Default:trueshowCPUusageShow the CPU Usage (%)
Options:true/false- Default:trueshowCPUtempShow the CPU Temperature
Options:true/false- Default:trueshowMemoryShow the Free Memory (%)
Options:true/false- Default:trueshowDiskShow the Free Diskpace
Options:true/false- Default:trueshowIPethShow the IP Address for the Ethernet
Options:true/false- Default:trueshowIPwifi | Show the IP Address for the Wifi<br/>Options:true/false- Default: <b>true`tempUnitShow the temperature in ˚C or ˚F
Options:C/F- Default:CupdateIntervalUpdate interval module in ms
Default:10000(10 seconds)Versions
v1.0.0 (10-03-2026): Initial version)
-
RE: PIR / MQTT - Presence sensor(s) revived
@rkorell
Hi Ralf, I implemented the new version and parameter.
It works great!I’m now playing with the CSS.
Made the bar smaller (50%) rounded edges and alligned the counter at the left of my screen.
For those who like this setup, just add following in ~/MagicMirror/css/custom.css
/* MMM-PresenceScreenControl */ .psc-linebar { width: 50%; height: 5px; background: #222; border-radius: 4px; margin: 6px 0 6px 0; overflow: hidden; margin-left: auto; margin-right: 0; } .psc-bar { height: 100%; width: 100%; border-radius: 4px; transition: width 0.4s ease, background 0.4s ease; box-shadow: 0 0 6px currentColor; } .psc-timer { font-size: 16px; margin-top: 4px; margin-bottom: 2px; letter-spacing: 1px; text-align: right !important; } -
RE: PIR / MQTT - Presence sensor(s) revived
@rkorell
Oke, done some testing:
With the ‘new’ strings, I get:onCommand: "WAYLAND_DISPLAY=wayland-0 wlr-randr --output HDMI-A-1 --on --mode 1920x1080 --transform 270", offCommand: "WAYLAND_DISPLAY=wayland-0 wlr-randr --output HDMI-A-1 --off",[ERROR] [MMM-PresenceScreenControl] [updateScreen] ERROR: Error: Command failed: WAYLAND_DISPLAY=wayland-0 wlr-randr --output HDMI-A-1 --on --mode 1920x1080 --transform 270 unknown output HDMI-A-1Why this message, I don’t know.
After a reboot this message didn’t show again.Then I stopped MagicMirror and did the same command from the commandline
WAYLAND_DISPLAY=wayland-0 wlr-randr --output HDMI-A-1 --offAfter 6 seconds my display comes on again.
So it isn’t coming from MagicMirror, but from my system.
I created a simple Python3 script to turn off and on my monitor. Same problem.Next step:
I took a new SD Card and installed a fresh copy of Trixie.
Didn’t do anything else, no updates or something else and tried again withWAYLAND_DISPLAY=wayland-0 wlr-randr --output HDMI-A-1 --offfrom the command prompt.
Display goes off and after 6 seconds back on again.
So I excluded MagicMirror. What else can it be?Next step:
I took an other RPI4b with the new SD Card from previous step. Repeated the test, but still same result. Monitor goes on after 6 seconds. So it is not MagicMirror, not the RPI. But why it works with MMM-PIR and not with MMM-PresenceScreenControl. It is still a riddle for me.Next step:
Original RPI with original SD Card and installed MMM-Universal-Pir. Same result, after 6 seconds screen on.
So I excluded MagicMirror, SD Card, Trixie installation and RPI. It must have something to do with my monitor?!?
Did something happen? Not that I know.After doing a search on the big WWW, I found an interesting article that described exact the same issue I was having.
https://forums.raspberrypi.com/viewtopic.php?t=363966So I searched for my RemoteControl and search for a setting
that automatically scan its input sources (not easy if your MagicMirror screen is rotated 270° ;-)
And I found this setting and indeed it was standing on auto scan. I put it on HDMI as only source and tried it again:YES, IT IS WORKING!!!
And even better than before, now my monitor turns completly off after 15 min. of no signal. So instead of using 75W when on, 26W in standby, it now uses 0W after 15 minutes (it’s a setting on the monitor).
Activating the PIR, it turns back on!So with this I hope that if somebody else has this problem, they can solve it to.
Ralf, thanks for all the help and trying to solve it with me.
I’m looking forward for the startupGracePeriod parameter and think this is going to make the module fully as I like it.
Thank you for your great work with this module and a grownup replacement for MMM-Pir!!! -
RE: PIR / MQTT - Presence sensor(s) revived
@rkorell
I live in the Netherlands.I’m Currently at the office, but I Will test it this evening and give you the results.
-
RE: PIR / MQTT - Presence sensor(s) revived
@rkorell
I did a git pull so I’m sure I’ve the latest version:- Screen stays on until I trigger the sensor, so that is not changed.
- Screen goes off after 30 sec (my setting for testing) and after 6 seconds it comes on again, saying 00:00
I had set debug:“complex” and this is what it gave
[2026-03-09 06:53:11.320] [LOG] [MMM-PresenceScreenControl] [PresenceScreenControl] [PIR] gpiomon output: 30488.576057914 rising gpiochip0 17 "GPIO17" [2026-03-09 06:53:12.466] [LOG] [MMM-PresenceScreenControl] [PresenceScreenControl] [PIR] gpiomon output: 30489.724051868 falling gpiochip0 17 "GPIO17" [2026-03-09 06:53:14.974] [LOG] [MMM-PresenceScreenControl] [PresenceScreenControl] [PIR] gpiomon output: 30492.232041526 rising gpiochip0 17 "GPIO17" [2026-03-09 06:53:16.122] [LOG] [MMM-PresenceScreenControl] [PresenceScreenControl] [PIR] gpiomon output: 30493.380045941 falling gpiochip0 17 "GPIO17" [2026-03-09 06:55:15.350] [LOG] [MMM-PresenceScreenControl] [PresenceScreenControl] [PIR] gpiomon output: 30612.608045172 rising gpiochip0 17 "GPIO17" [2026-03-09 06:55:16.498] [LOG] [MMM-PresenceScreenControl] [PresenceScreenControl] [PIR] gpiomon output: 30613.756051231 falling gpiochip0 17 "GPIO17"I only have a message when I trigger the PIR, but further no messages. For being complete, my config:
{ module: "MMM-PresenceScreenControl", position: "bottom_right", disabled: false, config: { mode: "PIR", pirGPIO: 17, onCommand: "DISPLAY=:0 wlr-randr --output HDMI-A-1 --on --mode 1920x1080 --transform 270", offCommand: "DISPLAY=:0 wlr-randr --output HDMI-A-1 --off", counterTimeout: 30, autoDimmer: false, autoDimmerTimeout: 60, style: 2, colorFrom: "red", colorTo: "lime", colorCronActivation: "cornflowerblue", showPresenceStatus: false, debug: "complex", resetCountdownWidth: false } }, -
RE: PIR / MQTT - Presence sensor(s) revived
@rkorell
First of all, thank you for your time!You were right about the startup behavior — I’ve fixed it. The screen now turns off after ~1 second if no presence is detected at startup. No more waiting for the first sensor event.Ok, nice. But why ~1 second?
Why not the time fromcounterTimeout?
Just my thoughts ;-)Could you please set debug: “complex” and share the complete log output from the moment the screen turns off until it comes back on?I will do this, but it will be tommorow.
I have to get up early and it’s already late. -
RE: PIR / MQTT - Presence sensor(s) revived
To update:
cd ~/MagicMirror/modules/MMM-PresenceScreenControl
git pull
rm -rf node_modules package-lock.json
npm installThe better way is first
rm -rf node_modules package-lock.json, otherwisegit pullgives an error that it cannot update because of package-lock.jsonerror: 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. -
RE: PIR / MQTT - Presence sensor(s) revived
@rkorell
Hi Ralf, I don’t agree with your argument about Issue 2.
When my MagicMirror starts and it does not detect any movement, the screen will stay on and on until movement is detected. Let’s say I’m not around for 2 hours, the screen is on for 2 hours.My other PIR modules I tested, do this as aspected (both MMM-Pir and MMM-Universal-Pir). So maybe you can consider to change this.
The other issue still exists after the update.
I don’t have a wayfire.ini file in my ~/.config.
My previous module MMM-Pir puts the screen off and at movement on. It stays off after it goes off.
With MMM-PresenceScreenControl my screen turns off and than after about 6-7 seconds, the screen comes back on again. I don’t make conclusions, but I think it has nothing to do with my system of Wayland settings. Something is triggering that the screen goes on again. -
RE: MMM-MyWeatherForecast
I just published an update to v1.2.0
- Add Iconsets for animated
- Possibility for custom icons
- Update language files
- Add riseSetDisplay option in config, to show Sunrise / Sunset as text, only icon or both
- Code optimized
Don’t forget to update the config.js with the extra options:
riseSetDisplay: "both", // Show Sunrise / Sunset as text | icon | both iconSet: "standard", // standard | animated | custom (upload your own PNG icons)If there are any issues, please add the issue here
-
RE: MMM-MyTado
Just updated to v1.0.3 - Add debug option, to prevent to many loggings in the logfiles.
In config.js simple add
debug: false,(or true for showing console log messages). Default it is false, because loggings were growing to fast.Update:
cd ~/MagicMirror/modules/MMM-MyTado git pull npm install -
RE: PIR / MQTT - Presence sensor(s) revived
Ok, I made an error because of issue 1.
I used the xrandr instead of the wrandr command for Wayland.Now Im using:
onCommand: "DISPLAY=:0 wlr-randr --output HDMI-A-1 --on --mode 1920x1080 --transform 270", offCommand: "DISPLAY=:0 wlr-randr --output HDMI-A-1 --off",The screen goes off after 30 sec (current counterTimeout), but after 10 seconds the screen goes on again, counter says 00:00 without that there was any movement. Also the debug doesn’t say noting. Until I create movement, than the counter starts at 00:30 and the screen goes off and after 10 sec. on. It looks like something triggers the software, to think there is movement.
Issue 2 still exists (it only applies when Mirror is first started).
After that it detects movement and it works fine.Issue 3
When debug is on and MMM-PresenceScreenControl is started, I see a message from [MMM-Pir][LIB][PIR]. Very confusing because I first thougt I had my other module still running.[2026-03-06 19:36:00.975] [LOG] [MMM-PresenceScreenControl] [MMM-Pir] [LIB] [PIR] Mode 0 Selected (gpiod library) [2026-03-06 19:36:00.977] [LOG] [MMM-PresenceScreenControl] [MMM-Pir] [LIB] [PIR] [GPIOD] node-libgpiod not available, falling back to Python/gpiozero (mode 1) -
RE: PIR / MQTT - Presence sensor(s) revived
cd ~/MagicMirror/modules/MMM-PresenceScreenControl
git pull
rm -rf node_modules package-lock.json
npm installBetter:
rm -f node_modelues package-lock.json git pull npm installOtherwise the
git pullwil not work.Issue 1:
When time is up, the screen doesn’t go off. Dim works, but then when the screen should go off, it is not dimmed anymore and on. Debug says:[2026-03-06 18:16:29.150] [LOG] [MMM-PresenceScreenControl] [updatePresence] pirPresence=false, touchPresence=false, presence=true, newPresence=false [2026-03-06 18:17:30.311] [LOG] [MMM-PresenceScreenControl] [startCounter] Counter expired: presence=false, pirPresence=false, calling updateScreen(false) [2026-03-06 18:17:30.323] [LOG] [MMM-PresenceScreenControl] [updateScreen] on=false, cmd="DISPLAY=:0 xrandr --output HDMI-1 --off" [2026-03-06 18:17:30.467] [LOG] [MMM-PresenceScreenControl] [updateScreen] SUCCESS: executed "DISPLAY=:0 xrandr --output HDMI-1 --off"Issue 2:
When module is started, and there is no movement, the mirror stays on and counter says 00:00.
Until it see movement, than counter start and after the counter is should go out (not, see issue 1). Debug after just started:[2026-03-06 18:20:32.007] [LOG] [MMM-PresenceScreenControl] [startCounter] Counter expired: presence=false, pirPresence=false, calling updateScreen(false) [2026-03-06 18:20:32.012] [LOG] [MMM-PresenceScreenControl] [updateScreen] on=false, cmd="DISPLAY=:0 xrandr --output HDMI-1 --off" [2026-03-06 18:20:32.132] [LOG] [MMM-PresenceScreenControl] [updateScreen] SUCCESS: executed "DISPLAY=:0 xrandr --output HDMI-1 --off"Current config (for testing):
{ module: "MMM-PresenceScreenControl", position: "bottom_right", disabled: false, config: { mode: "PIR", pirGPIO: 17, onCommand: "DISPLAY=:0 xrandr --output HDMI-1 --mode 1920x1200 --rotate left", offCommand: "DISPLAY=:0 xrandr --output HDMI-1 --off", counterTimeout: 30, autoDimmer: false, autoDimmerTimeout: 60, style: 2, colorFrom: "red", colorTo: "lime", colorCronActivation: "cornflowerblue", showPresenceStatus: false, debug: "on", resetCountdownWidth: false } },Pi OS version:
PRETTY_NAME="Debian GNU/Linux 13 (trixie)" NAME="Debian GNU/Linux" VERSION_ID="13" VERSION="13 (trixie)" VERSION_CODENAME=trixie DEBIAN_VERSION_FULL=13.3Mirror information:
- SYSTEM: manufacturer: Raspberry Pi Foundation; model: Raspberry Pi 4 Model B Rev 1.4; virtual: false; MM: 2.34.0 - OS: platform: linux; distro: Debian GNU/Linux; release: 13; arch: arm64; kernel: 6.12.62+rpt-rpi-v8 - VERSIONS: electron: 39.7.0; used node: 22.22.0; installed node: 22.21.1; npm: 10.9.4; pm2: 6.0.14 - ENV: XDG_SESSION_TYPE: tty; MM_CONFIG_FILE: undefined WAYLAND_DISPLAY: undefined; DISPLAY: :0; ELECTRON_ENABLE_GPU: undefined - RAM: total: 1845.58 MB; free: 972.54 MB; used: 873.04 MB - OTHERS: uptime: 5652 minutes; timeZone: Europe/AmsterdamNode version:
v22.21.1Currently I’m using MMM-Pir from Coernel82/MMM-Pir and this works fine. But because he doensn’t maintain this module, I thougt to go over.
I use these settings in this module:
mode: 3 - use wlr-randr (For raspbian 12 with wayfire compositor) wrandrForceRotation: "270", wrandrForceMode: null, waylandDisplayName: "wayland-0", Pir mode: 1, gpio: 17, triggerMode : "LH" - motion signal is triggered when sensor goes from LOW (0, no-motion) to HIGH (1, motion) -
RE: PIR / MQTT - Presence sensor(s) revived
@rkorell
When I install this module (currently using MMM-Pir) I got a lot of messages of deprecated modules. It also gives me 8 vulnerabilities (2 low, 6 high).npm warn skipping integrity check for git dependency ssh://git@github.com/electron/node-gyp.git npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm warn deprecated @npmcli/move-file@2.0.1: This functionality has been moved to @npmcli/fs npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported npm warn deprecated glob@8.1.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me npm warn deprecated glob@8.1.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me npm warn deprecated tar@6.2.1: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me > MMM-PresenceScreenControl@1.3.0 postinstall > ./postinstall node-libgpiod not installed (optional), skipping electron-rebuild. PIR sensor will use Python/gpiozero fallback. added 181 packages, and audited 182 packages in 34s 29 packages are looking for funding run `npm fund` for details 8 vulnerabilities (2 low, 6 high) To address issues that do not require attention, run: npm audit fix To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. pi@MagicMirror:~/MagicMirror/modules/MMM-PresenceScreenControl $I’m running on a Pi 4b with Trixie.