@sdetweil What’s the procedure to update that module?
Read the statement by Michael Teeuw here.
Posts
-
RE: MM clock reverted to UTC
-
RE: MM clock reverted to UTC
There is a git error in the Docker logs for MMM-CalendarExt3Agenda, though
[2026-05-05 12:14:05.460] [ERROR] [updatenotification] Failed to get git revisions for MMM-CalendarExt3Agenda: Error: Command failed: git rev-list --ancestry-path --count 72816f2..ed664f3 main fatal: ambiguous argument '72816f2..ed664f3 main': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]' -
RE: MM clock reverted to UTC
I did a
docker compose pullin theopt/mm/rundirectory and that was successfulmagicm@magicmirror:/opt/mm/run $ docker compose pull [+] Pulling 17/17 ✔ labwc Pulled 0.9s ✔ magicmirror Pulled 81.9s ✔ 76b7b92b680d Already exists 0.0s ✔ 5ee1ed488d07 Already exists 0.0s ✔ 3154f7f9972b Already exists 0.0s ✔ 73114b557eb0 Already exists 0.0s ✔ 563f46f75d49 Already exists 0.0s ✔ ad0a7f3409e8 Already exists 0.0s ✔ 5a172ff577b3 Already exists 0.0s ✔ 39715dbbbd4f Already exists 0.0s ✔ 189de6907d33 Already exists 0.0s ✔ e8dbedaf8b5d Pull complete 0.4s ✔ 3c77d19aac28 Pull complete 0.5s ✔ 8d20b36a9778 Pull complete 0.5s ✔ 1d705635a0a9 Pull complete 51.6s ✔ 5c309722c0df Pull complete 80.1s ✔ 4f4fb700ef54 Pull complete 80.2sbut the clock and agenda are still on UTC. The Docker logs state this early on
[INFO] ***WARNING*** could not set timezone, please set TZ variable in compose.yaml, see https://khassel.gitlab.io/magicmirror/configuration/#timezoneUPDATE
Before I could send this another day passed and now they are correct! Docker is still on UTC but the Clock and Agenda are correctly showing times on BST!
magicm@magicmirror:~ $ date Tue 5 May 12:15:21 BST 2026 magicm@magicmirror:~ $ docker exec -it mm bash node@magicmirror:/opt/magic_mirror$ date Tue May 5 11:15:28 AM UTC 2026 -
MM clock reverted to UTC
Hi
After a recent reboot (to update MMM-CalendarExt3Agenda and add some more dates to MMM-MyGarbage) I’ve noticed that the clock and agenda modules have reverted to UTC (should be BST right now).
A quick look shows the docker container is now running with UTC (although the RPi is correctly on BST):
magicm@magicmirror:~ $ date Sun 3 May 09:02:24 BST 2026 magicm@magicmirror:~ $ docker exec -it mm bash node@magicmirror:/opt/magic_mirror$ date Sun May 3 08:02:36 AM UTC 2026I’ve not set the timezone (or date format) explicitly for the Docker before. Has a new release of Docker changed that and, if so, how do I pass that setting through?
Many thanks
Steve
-
RE: MMM-Universal-PIR - ‘GPIOcommand exited with error!'
@karsten13 perfect, thank you. The Docker container has
gpiomonatv2.2.1. It never occurred to me the container would update things unannounced!Many thanks for your help
Steve
-
RE: MMM-Universal-PIR - ‘GPIOcommand exited with error!'
magicm@magicmirror:/opt/mm/mounts/config $ gpiomon --help Usage: gpiomon [OPTIONS] <chip name/number> <offset 1> <offset 2> ... Wait for events on GPIO lines and print them to standard output Options: -h, --help: display this message and exit -v, --version: display the version and exit -l, --active-low: set the line active state to low -B, --bias=[as-is|disable|pull-down|pull-up] (defaults to 'as-is'): set the line bias -n, --num-events=NUM: exit after processing NUM events -s, --silent: don't print event info -r, --rising-edge: only process rising edge events -f, --falling-edge: only process falling edge events -b, --line-buffered: set standard output as line buffered -F, --format=FMT specify custom output format Biases: as-is: leave bias unchanged disable: disable bias pull-up: enable pull-up pull-down: enable pull-down Format specifiers: %o: GPIO line offset %e: event type (0 - falling edge, 1 rising edge) %s: seconds part of the event timestamp %n: nanoseconds part of the event timestamp magicm@magicmirror:/opt/mm/mounts/config $ gpiomon -v gpiomon (libgpiod) v1.6.3 Copyright (C) 2017-2018 Bartosz Golaszewski License: LGPLv2.1 This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.-ris listed in the library help forv1.6.3 -
RE: MMM-Universal-PIR - ‘GPIOcommand exited with error!'
The Docker log shows
[2026-02-10 11:30:10.955] [ERROR] [MMM-Universal-Pir] stderr: gpiomon: invalid option -- 'r' gpiomon: try gpiomon --helpbut
gpiomon -r -b gpiochip0 23works in a terminal when pasted from theconfig.jsfile, very strangeIt’s just stopped working!
Steve
-
MMM-Universal-PIR - ‘GPIOcommand exited with error!'
Hi
With no warning (I haven’t carried out any updates)
MMM-Universal-Piris now failing. It shows under the ‘PIR SENSOR’ heading on the MM screen ‘gpioCommand exited with error!’Config is:
module: "MMM-Universal-Pir", position: "bottom_right", config: { gpioCommand: "gpiomon -r -b gpiochip0 23", onCommand: "wlr-randr --output HDMI-A-1 --on --transform 90", offCommand: "wlr-randr --output HDMI-A-1 --off", deactivateDelay: 120 * 1000, }and in a terminal
gpiomon -r -b gpiochip0 23shows events when the PIR is triggered andwlr-randr --output HDMI-A-1 --on --transform 90andwlr-randr --output HDMI-A-1 --offstill control the screen.gpiomonisv1.6.3What can have changed?
Steve
-
Family Kitchen Calendar
Got this up and running thanks to @karsten13 's help with screen blanking. Also had start-up issues as detailed here.
Runs on a RPi 4B I had lying around with MagicMirrorOS driving the fabulous RPi monitor with a PIR sensor to sense people in the room for screen blanking. Viewing angle on this screen is very impressive, very sharp and crisp display.
The Pi is in the boiler cupboard and wiring is hidden in 25x16mm trunking painted to match the wall. PIR sensor is in the tiniest project box I could find. Screen is on a VESA mount.
MagicMirrormodules:MMM-Universal-Pir- controlling HDMI for screen sleepclockcalendar- hidden, pulling UK Holidays and Family Google calendar feeding:MMM-CalendarExt3Agendawith CSS mods so it fills most of the screenMMM-MyGarbageweathershowing current and forecasts from UK met officenewsfeedshowing BBC news



-
RE: I cannot disable screen blanking with MagicMirrorOS
@karsten13 thank you for all the effort you are putting into this issue. I agree, let’s go back to the version that will kill and restart the container if the display doesn’t respond to
wlr-randr(and then waits for aMMM-Universal-Pircycle to sleep it again).Steve
-
RE: I cannot disable screen blanking with MagicMirrorOS
@karsten13 unfortunately that didn’t work.
In the morning the screen was off and could not be restored withdocker rm -f labwc && docker compose up -dordocker compose up -d --force-recreate. In both cases the console briefly came back and then the the monitor slept again. Only when i when into thelabwccontainer and didwlr-randr --output HDMI-A-1 --on --transform 90did the display return. At that point theMMM-Universal-Pirstarted counting down too and it works as normal.magicm@magicmirror:/opt/mm/run $ docker rm -f labwc && docker compose up -d labwc [+] Running 2/2 ✔ Container mm Running 0.0s ✔ Container labwc Started 0.5s magicm@magicmirror:/opt/mm/run $ docker compose up -d --force-recreate [+] Running 2/2 ✔ Container mm Started 1.7s ✔ Container labwc Started 1.8s magicm@magicmirror:/opt/mm/run $ >>> still no screen output <<< magicm@magicmirror:/opt/mm/run $ docker exec -it labwc bash pi@3f4fb5c07c91:/$ wlr-randr HDMI-A-1 "Raspberry PI RPI MON156 81005568472 (HDMI-A-1)" Make: Raspberry PI Model: RPI MON156 Serial: 81005568472 Physical size: 350x190 mm Enabled: no Modes: 1920x1080 px, 60.000000 Hz (preferred) 1920x1080 px, 60.000000 Hz 1920x1080 px, 59.939999 Hz 1920x1080 px, 50.000000 Hz 1920x1080 px, 48.000000 Hz 1920x1080 px, 47.952000 Hz 1280x720 px, 60.000000 Hz 1280x720 px, 60.000000 Hz 1280x720 px, 59.939999 Hz 1280x720 px, 50.000000 Hz 1280x720 px, 48.000000 Hz 1280x720 px, 47.952000 Hz 720x576 px, 50.000000 Hz 720x480 px, 60.000000 Hz 720x480 px, 59.939999 Hz 640x480 px, 60.000000 Hz 640x480 px, 59.939999 Hz 640x480 px, 59.939999 Hz pi@3f4fb5c07c91:/$ wlr-randr --output HDMI-A-1 --on --transform 90 >>> screen returns <<< pi@3f4fb5c07c91:/$Please check I did the pull etc correctly
magicm@magicmirror:/opt/mm $ git status On branch master Your branch is up to date with 'origin/master'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: install/install.sh Untracked files: (use "git add <file>..." to include in what will be committed) install/install.sh.old run/douglas.env no changes added to commit (use "git add" and/or "git commit -a") magicm@magicmirror:/opt/mm $ git switch develop M install/install.sh branch 'develop' set up to track 'origin/develop'. Switched to a new branch 'develop' magicm@magicmirror:/opt/mm $ git pull remote: Enumerating objects: 32, done. remote: Counting objects: 100% (32/32), done. remote: Compressing objects: 100% (22/22), done. remote: Total 22 (delta 14), reused 0 (delta 0), pack-reused 0 (from 0) Unpacking objects: 100% (22/22), 2.66 KiB | 247.00 KiB/s, done. From https://gitlab.com/khassel/magicmirror f4542dd..4891458 develop -> origin/develop a4a4748..c4bb59c master -> origin/master * [new tag] v2.31.0 -> v2.31.0 Updating f4542dd..4891458 Fast-forward .gitlab-ci.yml | 2 +- build/labwc/Dockerfile | 2 +- build/labwc/entrypoint.sh | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- run/includes/labwc.yaml | 4 +++- run/original.env | 4 ++-- 5 files changed, 57 insertions(+), 13 deletions(-) magicm@magicmirror:/opt/mm $ cd /opt/mm/run magicm@magicmirror:/opt/mm/run $ docker compose pull [+] Pulling 15/15 ✔ labwc Pulled 107.9s ✔ f07a03696dcc Already exists 0.0s ✔ 98d9f29a8bdf Pull complete 106.0s ✔ 6c9aae6d02f4 Pull complete 106.1s ✔ 9d496899b308 Pull complete 106.2s ✔ magicmirror Pulled 171.5s ✔ d9b636547744 Already exists 0.0s ✔ 2fb5eed0caf7 Already exists 0.0s ✔ f51205ec4ac4 Already exists 0.0s ✔ d7b57be0135b Already exists 0.0s ✔ 813d7d6819ab Already exists 0.0s ✔ 9e1af87e1f78 Pull complete 1.1s ✔ 27001e96a2b0 Pull complete 1.3s ✔ deb26dbf1268 Pull complete 110.8s ✔ 1b7abece8518 Pull complete 169.7s magicm@magicmirror:/opt/mm/run $ docker compose up -d --force-recreate [+] Running 2/2 ✔ Container labwc Started 24.9s ✔ Container mm StartedSteve
-
RE: I cannot disable screen blanking with MagicMirrorOS
@karsten13 I thought that would be the case. I tried changing the initial
RANDR_PARAMS="--output HDMI-A-1 --transform 90"in the.envfile toRANDR_PARAMS="--output HDMI-A-1 --off"so that theMMM-Universal-Pirmodule would be responsible for the first switch on of the display but then I got no display on restart at all.Steve
-
RE: I cannot disable screen blanking with MagicMirrorOS
@karsten13, thank you for this. It worked well overnight last night. One question: when the
wlr-randrcommand fails, thelabwccontainer is then killed and then automatically restarts - will the screen be turned on then until the next PIR activity and subsequent timeout ofMMM-Universal-Pir?Steve
-
RE: I cannot disable screen blanking with MagicMirrorOS
@karsten13 the display failed today as before but we have timestamps in the
labwcdocker logsmagicm@magicmirror:~ $ docker logs labwc 00:00:00.000 [INFO] [seatd/seat.c:48] Created VT-bound seat seat0 00:00:00.000 [INFO] [seatd/seatd.c:194] seatd started 00:00:00.052 [INFO] [seatd/server.c:145] New client connected (pid: 17, uid: 1000, gid: 1000) 00:00:00.052 [INFO] [seatd/seat.c:239] Added client 1 to seat0 00:00:00.052 [INFO] [seatd/seat.c:563] Opened client 1 on seat0 00:00:00.120 [ERROR] [EGL] command: eglQueryDeviceStringEXT, error: EGL_BAD_PARAMETER (0x300c), message: "eglQueryDeviceStringEXT" 00:00:00.120 [ERROR] [EGL] command: eglQueryDeviceStringEXT, error: EGL_BAD_PARAMETER (0x300c), message: "eglQueryDeviceStringEXT" executing: wlr-randr --output HDMI-A-1 --transform 90 Sat Mar 29 08:14:25 UTC 2025 HDMI-A-1 "Raspberry PI RPI MON156 81005568472 (HDMI-A-1)" Make: Raspberry PI Model: RPI MON156 Serial: 81005568472 Physical size: 350x190 mm Enabled: yes Modes: 1920x1080 px, 60.000000 Hz (preferred, current) 1920x1080 px, 60.000000 Hz 1920x1080 px, 59.939999 Hz 1920x1080 px, 50.000000 Hz 1920x1080 px, 48.000000 Hz 1920x1080 px, 47.952000 Hz 1280x720 px, 60.000000 Hz 1280x720 px, 60.000000 Hz 1280x720 px, 59.939999 Hz 1280x720 px, 50.000000 Hz 1280x720 px, 48.000000 Hz 1280x720 px, 47.952000 Hz 720x576 px, 50.000000 Hz 720x480 px, 60.000000 Hz 720x480 px, 59.939999 Hz 640x480 px, 60.000000 Hz 640x480 px, 59.939999 Hz 640x480 px, 59.939999 Hz Position: 0,0 Transform: 90 Scale: 1.000000 Adaptive Sync: disabled Sat Mar 29 08:29:25 UTC 2025 HDMI-A-1 "Raspberry PI RPI MON156 81005568472 (HDMI-A-1)" Make: Raspberry PI Model: RPI MON156 Serial: 81005568472 Physical size: 350x190 mm Enabled: yes Modes: 1920x1080 px, 60.000000 Hz (preferred, current) 1920x1080 px, 60.000000 Hz 1920x1080 px, 59.939999 Hz 1920x1080 px, 50.000000 Hz 1920x1080 px, 48.000000 Hz 1920x1080 px, 47.952000 Hz 1280x720 px, 60.000000 Hz 1280x720 px, 60.000000 Hz 1280x720 px, 59.939999 Hz 1280x720 px, 50.000000 Hz 1280x720 px, 48.000000 Hz 1280x720 px, 47.952000 Hz 720x576 px, 50.000000 Hz 720x480 px, 60.000000 Hz 720x480 px, 59.939999 Hz 640x480 px, 60.000000 Hz 640x480 px, 59.939999 Hz 640x480 px, 59.939999 Hz Position: 0,0 Transform: 90 Scale: 1.000000 Adaptive Sync: disabled ... Sat Mar 29 13:14:26 UTC 2025 HDMI-A-1 "Raspberry PI RPI MON156 81005568472 (HDMI-A-1)" Make: Raspberry PI Model: RPI MON156 Serial: 81005568472 Physical size: 350x190 mm Enabled: yes Modes: 1920x1080 px, 60.000000 Hz (preferred, current) 1920x1080 px, 60.000000 Hz 1920x1080 px, 59.939999 Hz 1920x1080 px, 50.000000 Hz 1920x1080 px, 48.000000 Hz 1920x1080 px, 47.952000 Hz 1280x720 px, 60.000000 Hz 1280x720 px, 60.000000 Hz 1280x720 px, 59.939999 Hz 1280x720 px, 50.000000 Hz 1280x720 px, 48.000000 Hz 1280x720 px, 47.952000 Hz 720x576 px, 50.000000 Hz 720x480 px, 60.000000 Hz 720x480 px, 59.939999 Hz 640x480 px, 60.000000 Hz 640x480 px, 59.939999 Hz 640x480 px, 59.939999 Hz Position: 0,0 Transform: 90 Scale: 1.000000 Adaptive Sync: disabled Sat Mar 29 13:29:26 UTC 2025 failed to connect to display Sat Mar 29 13:44:26 UTC 2025 failed to connect to display Sat Mar 29 13:59:26 UTC 2025 failed to connect to display Sat Mar 29 14:14:26 UTC 2025 failed to connect to display Sat Mar 29 14:29:26 UTC 2025 failed to connect to display Sat Mar 29 14:44:26 UTC 2025 failed to connect to display Sat Mar 29 14:59:26 UTC 2025 failed to connect to display Sat Mar 29 15:14:26 UTC 2025 failed to connect to display Sat Mar 29 15:29:26 UTC 2025 failed to connect to display Sat Mar 29 15:44:26 UTC 2025 failed to connect to display Sat Mar 29 15:59:26 UTC 2025 failed to connect to display Sat Mar 29 16:14:26 UTC 2025 failed to connect to displayThere's also a new item in the `mm` docker logs when I restarted the docker containers on my return Gdk-Message: 16:25:24.348: Error reading events from display: Broken pipe [entrypoint 16:25:25.533] [INFO] ***WARNING*** could write to /etc/localtime [entrypoint 16:25:25.539] [INFO] copy default modules [entrypoint 16:25:25.603] [INFO] copy css filesSteve
-
RE: I cannot disable screen blanking with MagicMirrorOS
@karsten13 my apologies, I see the transform is not needed as you have taken the rotation into account
-
RE: I cannot disable screen blanking with MagicMirrorOS
@karsten13 I left it running overnight with the MMM-Universal-Pir config lines commented out and the monitor physically switched off and this morning MM was still working fine when I switched the monitor back on again. When I looked at
docker logs labwcthewlr-randrcommand was failing (still being triggered every fifteen mins) which suggests the connection between theMMM-Universal-Pirand the display driver is the issue rather than the display actually going off. I will try your new build today although i will have to add--transform 90to theonCommandto get my screen rotation.magicm@magicmirror:/opt/mm/mounts/config $ docker logs labwc HDMI-A-1 "Raspberry PI RPI MON156 81005568472 (HDMI-A-1)" Make: Raspberry PI Model: RPI MON156 Serial: 81005568472 Physical size: 350x190 mm Enabled: yes Modes: 1920x1080 px, 60.000000 Hz (preferred, current) 1920x1080 px, 60.000000 Hz 1920x1080 px, 59.939999 Hz 1920x1080 px, 50.000000 Hz 1920x1080 px, 48.000000 Hz 1920x1080 px, 47.952000 Hz 1280x720 px, 60.000000 Hz 1280x720 px, 60.000000 Hz 1280x720 px, 59.939999 Hz 1280x720 px, 50.000000 Hz 1280x720 px, 48.000000 Hz 1280x720 px, 47.952000 Hz 720x576 px, 50.000000 Hz 720x480 px, 60.000000 Hz 720x480 px, 59.939999 Hz 640x480 px, 60.000000 Hz 640x480 px, 59.939999 Hz 640x480 px, 59.939999 Hz Position: 0,0 Transform: 90 Scale: 1.000000 Adaptive Sync: disabled failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display failed to connect to display magicm@magicmirror:/opt/mm/mounts/config $ docker exec -it labwc bash pi@c7c64f70849e:/$ wlr-randr failed to connect to display pi@c7c64f70849e:/$Steve
-
RE: I cannot disable screen blanking with MagicMirrorOS
@karsten13 unfortunately that change did not prevent the display from dropping. There’s no time timestamp in the docker logs for
labwcbut when i looked this morning there were some 40 calls towlr-randrthat had failed. If they are every 15mins that’s about 10:00 it failed. I will make a more accurate observation tonight -
RE: I cannot disable screen blanking with MagicMirrorOS
@karsten13 i have disabled the
initcontainer as suggested.When the display fails I can get it back with
docker rm -f labwc && docker compose up -d(docker compose up -d --force-recreatealso works butdocker compose up -don it’s own doesn’t). I am running it today with theMMM-Universal-Pirmodule disabled as another test (although when sitting at a login prompt it never went off).Note that the display fails after a few hours of no PIR trigger, it doesn’t have to be overnight.
Steve
-
RE: I cannot disable screen blanking with MagicMirrorOS
@sdetweil I stopped docker at 9:30 last night with
docker compose downleaving the screen at the magicmirror login prompt. This morning the screen was still showing the login prompt . MM was reinstated perfectly withdocker compose up -d --force-recreate. @karsten13 I notice there are now four objects that start:[+] Running 4/4 ✔ Network magicmirror_default Created 0.1s ✔ Container mm Started 0.9s ✔ Container init Started 1.0s ✔ Container labwc Started 1.0sSteve
