[2.31.0] - 2025-04-01
Thanks to: @Developer-Incoming, @eltociear, @geraki, @khassel, @KristjanESPERANTO, @MagMar94, @mixasgr, @n8many, @OWL4C, @rejas, @savvadam, @sdetweil.
⚠️ This release needs nodejs version v22.14.0 or higher
Added
Add CSS support to the digital clock hour/minute/second through the use of the classes clock-hour-digital, clock-minute-digital, and clock-second-digital.
Add Arabic (#3719) and Esperanto translation.
Mark option secondsColor as deprecated in clock module.
Add Greek translation to Alerts module.
[newsfeed] Add specific ignoreOlderThan value (override) per feed (#3360)
[weather] Added option Humidity to hourly View
[weather] Added option to hide hourly entries that are Zero, hiding the entire column if empty.
[updatenotification] Added option to iterate over modules directory instead using modules defined in config.js (#3739)
Changed
[core] starting clientonly now checks for needed env var WAYLAND_DISPLAY or DISPLAY and starts electron with needed parameters (if both are set wayland is used) (#3677)
[core] Optimize systeminformation calls and output (#3689)
[core] Add issue templates for feature requests and bug reports (#3695)
[core] Adapt start:x11:dev script
[weather/yr] The Yr weather provider now enforces a minimum updateInterval of 600 000 ms (10 minutes) to comply with the terms of service. If a lower value is set, it will be automatically increased to this minimum.
[weather/weatherflow] Fixed icons and added hourly support as well as UV, precipitation, and location name support.
[workflow] Run sudo apt-get update before installing packages to avoid install errors
[workflow] Exclude issues with label ready (coming with next release) from stale job
Removed
Updated
[core] Update requirements and dependencies including electron to v35 and formatting (#3593, #3693, #3717)
[core] Update prettier, ESLint and simplify config
Update Greek translation
Fixed
[calendar] Fix clipping events being broadcast (#3678)
[tests] Fix Electron tests by running them under new github image ubuntu-24.04, replace xserver with labwc, running under xserver and labwc depending on env variable WAYLAND_DISPLAY is set (#3676)
[calendar] Fix arrayed symbols, #3267, again, add testcase, add testcase for #3678
[weather] Fix wrong weatherCondition name in openmeteo provider which lead to n/a icon (#3691)
[core] Fix wrong port in log message when starting server only (#3696)
[calendar] Fix NewYork event processed on system in Central timezone shows wrong time #3701
[weather/yr] The Yr weather provider is now able to recover from bad API responses instead of freezing (#3296)
[compliments] Fix evening events being shown during the day (#3727)
[weather] Fixed minor spacing issues when using UV Index in Hourly
[workflow] Fix command to run spellcheck
https://github.com/MagicMirrorOrg/MagicMirror/releases/tag/v2.31.0
Hello everyone! I noticed that the weather module freezes and does not update. I looked at the logs, there are no errors. The command pm2 restart magicmirror helps. Is it possible to make a script so that the command pm2 restart magicmirror is executed automatically once a day. Thanks in advance to everyone!
Hello,
I have a problem with my Mirror Docker.
My hardware is not a Raspberry PI but a radxa ROCK 2F with a 128 GB SC card.
I have Docker and Portainer installed, and of course also the Mirror Docker software.
When I start the Docker container, I get a black screen and unfortunately, no content from the Mirror software is displayed.
I get the following error when starting the labwc container:
2025-03-31T16:06:59.604820724Z chown: cannot access ‘/run/user/1001/gvfs’: Permission denied
986
2025-03-31T16:06:59.653329660Z 00:00:00.000 [INFO] [seatd/seatd.c:167] Removing leftover socket at /run/seatd.sock
987
2025-03-31T16:06:59.653921766Z 00:00:00.000 [INFO] [seatd/seat.c:48] Created VT-bound seat seat0
988
2025-03-31T16:06:59.654542456Z 00:00:00.001 [INFO] [seatd/seatd.c:194] seatd started
989
2025-03-31T16:06:59.785464662Z 00:00:00.132 [INFO] [seatd/server.c:145] New client connected (pid: 16, uid: 1000, gid: 1000)
990
2025-03-31T16:06:59.785672337Z 00:00:00.132 [INFO] [seatd/seat.c:239] Added client 2 to seat0
991
2025-03-31T16:06:59.786233817Z 00:00:00.132 [INFO] [seatd/seat.c:563] Opened client 2 on seat0
992
2025-03-31T16:06:59.797688879Z 00:00:00.144 [ERROR] [seatd/seat.c:387] Could not make device fd drm master: Device or resource busy
993
2025-03-31T16:07:00.061181559Z libEGL warning: egl: failed to create dri2 screen
994
2025-03-31T16:07:00.061300855Z 00:00:00.278 [ERROR] [EGL] command: eglInitialize, error: EGL_NOT_INITIALIZED (0x3001), message: “DRI2: failed to create screen”
995
2025-03-31T16:07:00.085743162Z libEGL warning: egl: failed to create dri2 screen
996
2025-03-31T16:07:00.085860708Z 00:00:00.303 [ERROR] [EGL] command: eglInitialize, error: EGL_NOT_INITIALIZED (0x3001), message: “DRI2: failed to create screen”
997
2025-03-31T16:07:00.110807617Z 00:00:00.457 [INFO] [seatd/client.c:496] Client disconnected
998
2025-03-31T16:07:00.110951123Z 00:00:00.457 [ERROR] [seatd/seat.c:442] Could not revoke drm master on device fd: Invalid argument
999
2025-03-31T16:07:00.111026375Z 00:00:00.457 [INFO] [seatd/seat.c:158] No clients on seat0 to activate
1000
2025-03-31T16:07:00.111250092Z /entrypoint.sh: line 21: 16 Segmentation fault labwc
The MM container keeps restarting because it doesn’t have a display:
2025-03-31T16:09:56.570445772Z [58:0331/180956.569442:ERROR:ozone_platform_x11.cc(245)] Missing X server or $DISPLAY
988
2025-03-31T16:09:56.571702893Z [58:0331/180956.570634:ERROR:env.cc(258)] The platform failed to initialize. Exiting.
989
2025-03-31T16:09:57.087712870Z /opt/magic_mirror/node_modules/electron/dist/electron exited with signal SIGSEGV
What do I have to do to get the labwc container to start or initialize the display?
Thank you very much for any information.
Best regards,
Olaf
i am away from my home office, i have my mac mini and a pi 5, but left the hdmi/micro hdmi adapter at home
i need to test my install script on pi5
use the pi imager, flash sd card w user and enable ssh, use password not key
the pi boots, i can connect to the ssh server but cannot logon
password not valid.
i have tried ssh from mac, ubuntu vm, and windows vm
all fail the same
in general i have not tried this headless as i have a monitor dedicated to this at home
i also tried with a new rsa key, that fails too
another interesting fact, the pi will not connect to wifi, altho the router is physically next to the pi… my mac, and phone are connected without problems,
the router provider has an app, and you can see NO devices attached (really helpful!!)
another interesting fact, if I open the settings in the imager to flash another
the password fields (user and wifi) are filled with junk text, maybe encrypted… but the values I entered are not visible
Hi Team,
may there a specialist for the standard weather module who can lead me in right direction…
It was disappeared for a while but re-introduces for unknown reasons:
The weather module displays a “standard” header (Location name) despite my personal config.js setting (see below).
I do have two instances of the module - as many others I guess - one current (classes: weather_current), one forecast (classes: weather_forecast).
The error is neither consistent nor reproducable:
Sometimes one of the instances shows a header, sometimes both, sometimes none of them.
The view is inconsistent, too for (HDMI attached) monitor and browser view!
And while playing around with custom CSS for this module I’ve identified that setting
.weather_current .module-header
{
border-bottom-width: 3;
}
in custom.css makes the module disappearing completely.
The weather module configuration in config.js is as follows:
// Wetter aktuell für Müllenborn
{
module: "weather",
disabled: false,
position: "top_right",
header: "",
classes: "weather_current",
config: {
weatherProvider: "openmeteo",
type: "current",
lat: 50.24127,
lon: 6.61174403,
onlyTemp: true, // zeigt nur die temp und icon, kein wind kein gar nix :-)
showSun: false,
appendLocationToHeader: false,
showFeelsLike: false,
}
},
// Wettervorhersage -
{
module: "weather",
position: "top_right",
disabled: false,
header: "",
classes: "weather_forecast",
config: {
weatherProvider: "openmeteo",
type: "forecast",
lat: 50.24127,
lon: 6.6174403,
appendLocationToHeader: false,
}
},
currently I have “solved” this with two entries in custom.css:
.weather_current .module-header
{
color: black;
border-bottom-width: 0;
border-bottom-color: black;
}
.weather_forecast .module-header
{
color: black;
border-bottom-width: 0;
border-bottom-color: black;
}
But this is kind of unsatisfactory …
I guess there is a bug in the module - what do you think?
Thanks and regards,
Ralf
Description:
MMM-NounsTimeline is a powerful MagicMirror module that brings the vibrant world of Nouns directly to your mirror. This module displays a dynamic timeline of casts from Nouns, providing real-time updates of community interactions, discussions, and announcements.
Key features include:
Real-time display of Nouns casts with author information
Beautiful profile picture integration
Engagement metrics (likes and replies)
Automatic cycling through multiple casts
Customizable display settings
Smooth animations and transitions
Responsive design that works on any mirror size
The module automatically cycles through casts, showing a configurable number of posts at a time, with smooth transitions between sets. It’s perfect for staying connected with the Nouns community while going about your daily routine.
Screenshots:
[image: preview.png?raw=true]
Download:
[MMM-NounsTimeline]
Version 1.0.0
Initial release
Real-time Nouns timeline display
Author information with profile pictures
Engagement metrics display
Automatic cycling through casts
Customizable display settings
Smooth animations
Pinata API integration for reliable data fetching
I can’t get the module to work. I entered the free API key but no data is provided. I suspect a typo or setting that I am not doing correctly. I would appreciate your help with possible working examples. Thank you in advance for your efforts.
config:
{
// See 'Configuration options' for more information.
weatherProvider: 'openweathermap',
weatherEndpoint: '/onecall',
apiKey: '57657657576',
apiVersion: '3.0',
location:'Amsterdam,Netherlands'
type: 'forecast',
colored: true,
fade: false,
maxNumberOfDays: 3,
degreeLabel: 'true',
showWindDirectionAsArrow: 'true',
decimalSymbol: ','
} },
Good Morning!
after my last posting regarding display-stop with X11 (MMM-Universal-Pir) I’ve decided to try to get things to run with Wayland.
Unfortunately this doesn’t work :-(
I’ve disabled X11 / enabled Wayland in raspi-config and done a reboot.
Magic Mirror than doesn’t come up - no surprise.
issued
pm2 stop MagicMirror
[PM2] Applying action stopProcessId on app [MagicMirror](ids: [ 0 ])
[PM2] [MagicMirror](0) ✓
┌────┬────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├────┼────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ MagicMirror │ default │ 2.31.0… │ fork │ 0 │ 0 │ 0 │ stopped │ 0% │ 0b │ pi │ disabled │
└────┴────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
Then I’ve tried
npm run start:wayland
This exits with an error message from electron :
pi@MagicMirrorPi5:~/MagicMirror $ npm run start:wayland
> magicmirror@2.31.0-develop start:wayland
> WAYLAND_DISPLAY="${WAYLAND_DISPLAY:=wayland-1}" ./node_modules/.bin/electron js/electron.js --enable-features=UseOzonePlatform --ozone-platform=wayland
[2025-03-28 10:27:47.902] [LOG] Starting MagicMirror: v2.31.0-develop
[2025-03-28 10:27:47.912] [LOG] Loading config ...
[2025-03-28 10:27:47.913] [LOG] config template file not exists, no envsubst
[2025-03-28 10:27:48.094] [INFO] Checking config file /home/pi/MagicMirror/config/config.js ...
[2025-03-28 10:27:48.151] [INFO] Your configuration file doesn't contain syntax errors :)
[2025-03-28 10:27:48.152] [INFO] Checking modules structure configuration ...
[2025-03-28 10:27:48.193] [INFO] Your modules structure configuration doesn't contain errors :)
[2025-03-28 10:27:48.194] [LOG] Loading module helpers ...
[2025-03-28 10:27:48.195] [LOG] No helper found for module: alert.
[2025-03-28 10:27:48.195] [LOG] No helper found for module: MMM-MagicMover.
[2025-03-28 10:27:48.195] [LOG] No helper found for module: clock.
[2025-03-28 10:27:48.196] [LOG] No helper found for module: MMM-Profilepicture.
[2025-03-28 10:27:48.204] [LOG] Initializing new module helper ...
[2025-03-28 10:27:48.204] [LOG] Module helper loaded: MMM-Logging
[2025-03-28 10:27:48.211] [LOG] Initializing new module helper ...
[2025-03-28 10:27:48.211] [LOG] Module helper loaded: MMM-MoonPhase
[2025-03-28 10:27:48.211] [LOG] No helper found for module: MMM-Globe.
[2025-03-28 10:27:48.211] [LOG] No helper found for module: weather.
[2025-03-28 10:27:48.237] [LOG] Initializing new module helper ...
[2025-03-28 10:27:48.237] [LOG] Module helper loaded: MMM-JsonValue
[2025-03-28 10:27:48.244] [LOG] Initializing new module helper ...
[2025-03-28 10:27:48.245] [LOG] Module helper loaded: MMM-MyGarbage
[2025-03-28 10:27:48.245] [LOG] No helper found for module: MMM-CalendarExt3Agenda.
[2025-03-28 10:27:48.328] [LOG] Initializing new module helper ...
[2025-03-28 10:27:48.328] [LOG] Module helper loaded: MMM-Todoist
[2025-03-28 10:27:48.359] [LOG] 2025-03-28T10:27:48 <log> init module helper birthdaylist (/home/pi/MagicMirror/modules/birthdaylist/node_helper.js:15 Class.init)
[2025-03-28 10:27:48.359] [LOG] Module helper loaded: birthdaylist
[2025-03-28 10:27:48.360] [LOG] Initializing new module helper ...
[2025-03-28 10:27:48.360] [LOG] Module helper loaded: MMM-SystemMonitor
[2025-03-28 10:27:48.470] [LOG] Initializing new module helper ...
[2025-03-28 10:27:48.470] [LOG] Check MagicMirror² version for node helper 'MMM-Strava' - Minimum version: 2.2.0 - Current version: 2.31.0-develop
[2025-03-28 10:27:48.470] [LOG] Version is ok!
[2025-03-28 10:27:48.470] [LOG] Module helper loaded: MMM-Strava
[2025-03-28 10:27:48.470] [LOG] No helper found for module: MMM-EventHorizon.
[2025-03-28 10:27:48.501] [LOG] Initializing new module helper ...
[2025-03-28 10:27:48.501] [LOG] Module helper loaded: MMM-FRITZ-Box-Callmonitor-py3
[2025-03-28 10:27:48.618] [LOG] Initializing new module helper ...
[2025-03-28 10:27:48.619] [LOG] Module helper loaded: MMM-NowPlayingOnSpotify
[2025-03-28 10:27:48.619] [LOG] Initializing new module helper ...
[2025-03-28 10:27:48.619] [LOG] Module helper loaded: MMM-SystemInfo
[2025-03-28 10:27:48.647] [LOG] Initializing new module helper ...
[2025-03-28 10:27:48.647] [LOG] Module helper loaded: newsfeed
[2025-03-28 10:27:48.647] [LOG] No helper found for module: MMM-UselessFacts.
[2025-03-28 10:27:48.667] [LOG] Initializing new module helper ...
[2025-03-28 10:27:48.667] [LOG] Module helper loaded: MMM-Remote-Control
[2025-03-28 10:27:48.709] [LOG] Initializing new module helper ...
[2025-03-28 10:27:48.709] [LOG] Module helper loaded: calendar
[2025-03-28 10:27:48.710] [LOG] All module helpers loaded.
[2025-03-28 10:27:48.713] [LOG] Starting server on port 8080 ...
[2025-03-28 10:27:48.714] [WARN] You're using a full whitelist configuration to allow for all IPs
[2025-03-28 10:27:49.037] [LOG] Server started ...
[2025-03-28 10:27:49.037] [LOG] Connecting socket for: MMM-Logging
[2025-03-28 10:27:49.038] [LOG] 2025-03-28T10:27:49 <log> Module helper started for MMM-Logging (/home/pi/MagicMirror/modules/MMM-Logging/node_helper.js:19 Class.start)
[2025-03-28 10:27:49.039] [LOG] Connecting socket for: MMM-MoonPhase
[2025-03-28 10:27:49.039] [LOG] Starting module helper: MMM-MoonPhase
[2025-03-28 10:27:49.044] [LOG] Connecting socket for: MMM-JsonValue
[2025-03-28 10:27:49.045] [LOG] Connecting socket for: MMM-MyGarbage
[2025-03-28 10:27:49.045] [LOG] 2025-03-28T10:27:49 <log> Starting node_helper for module: MMM-MyGarbage (/home/pi/MagicMirror/modules/MMM-MyGarbage/node_helper.js:9 Class.start)
[2025-03-28 10:27:49.046] [LOG] Connecting socket for: MMM-Todoist
[2025-03-28 10:27:49.047] [LOG] 2025-03-28T10:27:49 <log> Starting node helper for: MMM-Todoist (/home/pi/MagicMirror/modules/MMM-Todoist/node_helper.js:19 Class.start)
[2025-03-28 10:27:49.047] [LOG] Connecting socket for: birthdaylist
[2025-03-28 10:27:49.047] [LOG] Connecting socket for: MMM-SystemMonitor
[2025-03-28 10:27:49.048] [LOG] Starting module helper: MMM-SystemMonitor
[2025-03-28 10:27:49.048] [LOG] Connecting socket for: MMM-Strava
[2025-03-28 10:27:49.050] [LOG] 2025-03-28T10:27:49 <log> Starting module helper: MMM-Strava (/home/pi/MagicMirror/modules/MMM-Strava/node_helper.js:47 Class.start)
[2025-03-28 10:27:49.051] [LOG] Connecting socket for: MMM-FRITZ-Box-Callmonitor-py3
[2025-03-28 10:27:49.052] [LOG] 2025-03-28T10:27:49 <log> Starting module: MMM-FRITZ-Box-Callmonitor-py3 (/home/pi/MagicMirror/modules/MMM-FRITZ-Box-Callmonitor-py3/node_helper.js:28 Class.start)
[2025-03-28 10:27:49.053] [LOG] Connecting socket for: MMM-NowPlayingOnSpotify
[2025-03-28 10:27:49.053] [LOG] Connecting socket for: MMM-SystemInfo
[2025-03-28 10:27:49.053] [LOG] Starting node helper: MMM-SystemInfo
[2025-03-28 10:27:49.054] [LOG] Connecting socket for: newsfeed
[2025-03-28 10:27:49.054] [LOG] Starting node helper for: newsfeed
[2025-03-28 10:27:49.054] [LOG] Connecting socket for: MMM-Remote-Control
[2025-03-28 10:27:49.055] [LOG] Starting node helper for: MMM-Remote-Control
[2025-03-28 10:27:49.060] [LOG] Connecting socket for: calendar
[2025-03-28 10:27:49.061] [LOG] Starting node helper for: calendar
[2025-03-28 10:27:49.061] [LOG] Sockets connected & modules started ...
[2025-03-28 10:27:49.346] [LOG] Launching application.
[2025-03-28 10:27:49.594] [INFO] System information:
### SYSTEM: manufacturer: ; model: ; virtual: false
### OS: platform: linux; distro: Debian GNU/Linux; release: 12; arch: arm64; kernel: 6.6.74+rpt-rpi-2712
### VERSIONS: electron: 32.2.7; used node: 20.18.1; installed node: 20.18.1; npm: 10.8.2; pm2: 5.4.3
### OTHER: timeZone: Europe/Berlin; ELECTRON_ENABLE_GPU: undefined
/home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGTRAP
pm2 knows that about MagicMirror:
pi@MagicMirrorPi5:~/MagicMirror $ pm2 show MagicMirror
Describing process with id 0 - name MagicMirror
┌───────────────────┬──────────────────────────────────────────┐
│ status │ stopped │
│ name │ MagicMirror │
│ namespace │ default │
│ version │ 2.31.0-develop │
│ restarts │ 0 │
│ uptime │ 0 │
│ script path │ /home/pi/MagicMirror/installers/mm.sh │
│ script args │ N/A │
│ error log path │ /home/pi/.pm2/logs/MagicMirror-error.log │
│ out log path │ /home/pi/.pm2/logs/MagicMirror-out.log │
│ pid path │ /home/pi/.pm2/pids/MagicMirror-0.pid │
│ interpreter │ bash │
│ interpreter args │ N/A │
│ script id │ 0 │
│ exec cwd │ /home/pi │
│ exec mode │ fork_mode │
│ node.js version │ N/A │
│ node env │ N/A │
│ watch & reload │ ✘ │
│ unstable restarts │ 0 │
│ created at │ 2025-03-28T09:21:32.089Z │
└───────────────────┴──────────────────────────────────────────┘
Divergent env variables from local env
┌────────────────┬─────────────────────────────────────┐
│ PWD │ /home/pi │
│ SSH_CONNECTION │ 172.23.56.21 53109 172.23.56.157 22 │
│ TERM │ xterm │
│ SHLVL │ 2 │
│ SSH_CLIENT │ 172.23.56.21 53109 22 │
│ OLDPWD │ /home/pi/MagicMirror/splashscreen │
└────────────────┴─────────────────────────────────────┘
What to do to get it fixed?
is
fixuppm2.sh a possible solution?
Thanks for any hint!
Ralf
Hi,
I was looking for something to fill some space on my screen and happened upon the MMM Dad Jokes module. I installed it fine and put it in Top Left under the clock. The problem is the text doesn’t wrap so the module is crossing over into the right half of the screen and overlapping with my calendar module that’s over there. How can I stop this from happening?
I just want it to be the same size as the default Clock module with the same spacing. Is there a way to do that easily? I’m sure it can be done with some CSS, but I’m no good with CSS so any help would be great. ;)
Thanks.
https://i.imgur.com/tFy7Wjh.png
Good eveneing, all.
My mirror is working fine, I was able to configure a Raspi5 with bookworm and all migrated modules are working in this version.
Because I have to keep in mind that my favourite MMM-Pir ( :-) ) won’t run that much in future I try to investigate alternatives.
The most current module for PIR detection seems to be MMM-Universal-Pir.
Unfortunately I’m not able to figure out the right commands (or the module doesn’t work - but I’ve seen some success messages).
For some strange reason my Mirror-Autostart is configured with a X11 start, so on my bookworm instance I have disabled wayland to run MagicMirror in this mode, so “default” commands of module won’t definitely not work.
I’ve found here around :
“vcgencmd display_power 1” / “vcgencmd display_power 0” - on bookworm vgencmd doesn’t have this “display_power” option.
“echo on | sudo tee /sys/class/drm/card1-HDMI-A-1/status” / “echo off | sudo tee /sys/class/drm/card1-HDMI-A-1/status” – this doesn’t do anything on my system - neither on terminal command-line nor in module.
“DISPLAY=:0.0 xrandr --output HDMI-1 --off” / “DISPLAY=:0.0 xrandr --output HDMI-1 --primary --mode 2560x1440 --rate 59.951 --pos 0x0 --rotate left” are the most promising candidates - they at least are working on command-line in terminal
But xrandr doesn’t work with MMM-Universal-Pir.
(I’ve also tried to use these xrandr commands without display-reference
(“xrandr --output HDMI-1 --off” / “xrandr --output HDMI-1 --primary --mode 2560x1440 --rate 59.951 --pos 0x0 --rotate left”* ) . Doesn’t work, either (from module).
Is anybody out there with Pi5/bookworm/X11 with a working configuration / Command pair?
And an additional question to those who are uing this module successfully: Is it true, that the countdown is not interrupted if a motion is detected ? (this is my impression when looking at the countdown - but may 1 Minute is too short) …
Many thanks for any hint!
Regards,
Ralf
Description:
MMM-NounsTreasury is a MagicMirror² module that displays real-time information about the Lil Nouns DAO treasury portfolio. This module provides a clean and intuitive interface to monitor the treasury’s holdings, including ETH and various ERC-20 tokens.
Key Features:
Real-time display of total portfolio value in USD or IDR
Detailed breakdown of ETH and major token holdings
Configurable token list with support for popular assets like stETH, USDC, rETH, WETH, and wstETH
Automatic updates every 5 minutes (configurable)
Support for multiple currencies (USD/IDR)
Configurable display options for token balances
The module uses the Alchemy API to fetch on-chain data and CoinGecko for price information, ensuring accurate and up-to-date portfolio valuations.
Screenshots:
[image: preview.png]
Download:
XppaiCyberr/MMM-LilNounsTreasury
Version 1.0.0
Initial release
Display total portfolio value
Support for ETH and major ERC-20 tokens
Real-time price updates
Configurable display options
Multi-currency support (USD/IDR)
Hello! I’ve been using a MagicMirror for years and have worked on and developed modules for a while as well, but this is the first I’m posting here on the forums in hopes someone finds it useful besides myself.
I’ve used various PIR modules to make my screen only turn on when someone moves in front of the mirror, to save a lot of power during most times when there’s nobody there. But recently, I’ve installed a bunch of Zigbee motion / presence sensors as part of my smart home upgrades, and decided to ditch the standalone sensor on the mirror and integrate it into the global presence detection instead. The simplest way to do this is via MQTT, since all sensor data flows through there anyway, and the integration can be really lightweight.
What came out is https://github.com/olexs/MMM-MQTTScreenOnOff. Take a look :) No screenshots, since it is a pure background module with nothing rendered to screen.
The default option values approximate a connection to local MQTT and subscribing to a Zigbee2MQTT motion / occupancy sensor data. The module also allows to make the mirror turn the display off at startup (assuming it may restart at night during automated updates, or after a power outage, etc).
You can configure the commands used to turn the screen on and off - by default I use DISPLAY=:0.0 xrandr --output HDMI-1 --auto and DISPLAY=:0.0 xrandr --output HDMI-1 --off, this works on a current out-of-the-box Raspberry Pi OS (ex-Raspbian) installation, but you may need something else depending on which hardware and OS your mirror is running on.
Finally, you can optionally make the module broadcast a USER_PRESENCE message to other modules in the mirror when the screen turns on and off. This can be useful to disable regular updates when the mirror is inactive, especially for modules that use quota-limited or paid APIs (e.g. Google Maps or similar).
I’ve been using this for almost a year now, and it’s solid. External sensor works much more reliably for me than any standalone PIR I’ve plugged into the mirror itself before.
Let me know what you think.
Good morning,
just restored my mirror with restore scripts from Sam (@sdetweil ).
Unfortunately MMM-CalendarExt3Agenda doesn’t show up.
I’ve just installed the calendar fix but this doesn’t help:
pi@MagicMirrorPi5:~/MagicMirror $ git switch _fix_clipping
error: Your local changes to the following files would be overwritten by checkout:
package-lock.json
package.json
Please commit your changes or stash them before you switch branches.
Aborting
pi@MagicMirrorPi5:~/MagicMirror $ rm package-lock.json
pi@MagicMirrorPi5:~/MagicMirror $ git switch _fix_clipping
error: Your local changes to the following files would be overwritten by checkout:
package.json
Please commit your changes or stash them before you switch branches.
Aborting
pi@MagicMirrorPi5:~/MagicMirror $ mv package.json package.json.old
pi@MagicMirrorPi5:~/MagicMirror $ git switch _fix_clipping
Switched to branch '_fix_clipping'
pi@MagicMirrorPi5:~/MagicMirror $ npm run install-mm
> magicmirror@2.31.0-develop install-mm
> npm install --no-audit --no-fund --no-update-notifier --only=prod --omit=dev
> magicmirror@2.31.0-develop postinstall
> npm run install-vendor && npm run install-fonts && echo "MagicMirror² installation finished successfully!
> "
> magicmirror@2.31.0-develop install-vendor
> echo "Installing vendor files ...
> " && cd vendor && npm install --loglevel=error --no-audit --no-fund --no-update-notifier
Installing vendor files ...
up to date in 369ms
> magicmirror@2.31.0-develop install-fonts
> echo "Installing fonts ...
> " && cd fonts && npm install --loglevel=error --no-audit --no-fund --no-update-notifier
Installing fonts ...
up to date in 400ms
MagicMirror² installation finished successfully!
> magicmirror@2.31.0-develop prepare
> [ -f node_modules/.bin/husky ] && husky || echo no husky installed.
no husky installed.
added 1 package, removed 99 packages, and changed 186 packages in 19s
I’ve searched logs and found an error:
Cannot GET /modules/MMM-CalendarExt3Agenda/CX3_Shared/CX3_shared.mjs
which is true - this directory “CX3_Shared” is empty on my restored version.
on github the CX3_Shared directory is linked elsewhere - this is might the reason for not re-installing it correctly…
Git pull in $HOME/MagicMirror/modules/MMM-CalendarExt3Agenda doesn’t help either.
What can I do to get it up and running?
Thanks for any hint!
Ralf
Hi,
I had to redo my MM from scratch and I’m having a problem. I have 6 calendars that I put in the config file. However, one of my calendars isn’t showing up in the default Calendar module even though it says it fetched events in the log. I commented out all but two calendars as a test but it’s still not showing the problem calendar at all. When I comment out all but the one that’s not working, I just get nothing at all.
The log says:
[2025-03-25 21:10:45.940] [INFO] Calendar-Fetcher: Broadcasting 378 events from https://calendar.google.com/calendar/ical/xxxxxxxxxx/basic.ics.
If I go to the url manually, I can download the basic.ics file. When I open it up I can see that there are tons of events in there, including ones that are tomorrow.
Is there any way to figure out why they aren’t showing up on the screen?
Thanks.
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.
Read the statement by Michael Teeuw here.
Categories
-
Announcements
Announcements regarding the MagicMirror software and forum.
-
Core System
Discuss the MagicMirror² core framework.
-
-
-
-
-
-