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

    Mr.Sponti

    @Mr.Sponti

    11
    Reputation
    1.7k
    Profile views
    34
    Posts
    0
    Followers
    0
    Following
    Joined
    Last Online
    Location Germany

    Mr.Sponti Unfollow Follow

    Best posts made by Mr.Sponti

    • RE: Electron CPU usage

      Hello, here are some details on my configuration and the steps I’ve made to downgrade from 2.1.1 to MM 2.1.0 & electron 1.4.15. First, I use the following PI and OS

      • Pi 3 Model B, 1024MB RAM

      • Raspbian Stretch

      pi@Infoboard:~ $ uname -a
      Linux Infoboard 4.9.41-v7+ #1023 SMP Tue Aug 8 16:00:15 BST 2017 armv7l GNU/Linux
      

      Downgrade MagicMirror from 2.1.1 to 2.1.0:
      -rename of my MagicMirror folder to MagicMirrorSAVE
      -download and unzip MM 2.1.0
      -rename dir MagicMirror-2.1.0 to MagicMirror
      -cd to MagicMirror
      -npm install electron@1.4.15 # I didn’t install electron as a global package
      -nano package.json
      –> change electron version under dependencies to electron 1.4.15

      {
        "name": "magicmirror",
        "version": "2.1.0",
        "description": "A modular interface for smart mirrors.",
        "main": "js/electron.js",
        "scripts": {
          "start": "electron js/electron.js"
        },
        "repository": {
          "type": "git",
       ...
       "dependencies": {
          "electron": "1.4.15",
          "express": "^4.14.0",
          "express-ipfilter": "latest",
          "feedme": "latest",
      ....
      

      now, install MagicMirror

      -npm install
      -copy your own modules from the MagicMirrorSAVE to the respective MM2.1.0 directory
      -install necessary node modules for your own modules
      done
      Check the installed version of electron

      pi@Infoboard:~ $ more MagicMirror/node_modules/electron/dist/version
      v1.4.15
      

      run MM with ‘npm start’ and monitor the CPU usage with ‘top’
      and the magic is there: 2 to 3 % CPU usage in case you are not running newsfeed or other modules with a lot of rendering stuff. If I include the newfeed modul CPU usage will increase up to 30%. So, I go without newsfeed!

      alt text

      I hope that help some or the other.

      posted in Troubleshooting
      Mr.SpontiM
      Mr.Sponti
    • MagicMirror Pimatic (Home Automation) Dashboard

      First of all a big, very big thank you to Michael Teeuw!!!

      MagicMirror is really one of the greatest Raspberry projects followed by ‘pimatic - home automation controller’, another amazing Raspberry project. So far as I know both are developments from Dutchmen.
      After studying the documentation and several MM-moduls, I decided to use MagicMirror to setup a central dashboard for my family. Beside customizing of the standard moduls I used the modul ‘MMM-DWD-WarnWeather by LukeSkywalker92’ as a base to create a new modul for retrieving data from my pimatic home controller.
      I’m a complete novice to nodejs and all this web stuff, but my programming skill were sufficient to modify the Warnweather module and to integrate the the pimatic socket API.

      And voila, here is my dashboard providing now actual information from the internet plus status information from my IoT devices controlled by pimatic.

      alt text

      Special thanks, to those people taken time to document and to publish there solutions.
      (As soon as I’ve learned to use git, I will also publish the pimatic modul)

      Best regards and a happy new year!

      posted in Show your Mirror
      Mr.SpontiM
      Mr.Sponti
    • RE: Need help from an CSS expert!

      @tosti007 , @strawberry 3.141 - ok, you all right, it is not a failure to investigate a bit time to consult the internet and to learn new things!
      I found and implemented a solution based on a table definition:

      alt text

      That’s was exactly what I was looking for!

      posted in Development
      Mr.SpontiM
      Mr.Sponti
    • RE: digital photo frame

      Hi,

      over the Chrismas days I’ve created a slideshow modul which is close to the functionality of a “digital photo frame”.

      MMM-Photoshow

      At startup the modul scans a local directory structure and creates a repository of the image files to display. At this point in time the module hide itself and waits on a command to start. The slideshow will start by a notification message from another modul, hides all other modules and shows the pictures in fullscreen mode. New pictures wil show up by a configurable time intervall. If the exif tag of the photo provides an information on the date taken, this date is shown in a footer line at the bottom of the screen. In addtion the footer line shows an album name, the number of photos of the album and the last received notification message (command to steer the show).

      The slideshow is controlled by notification messages from a separate control modul. I’ve implemented a communication (socket io) to an external voice recognition modul based on snowboy. I think the modul (i.e alexyak/voicecontrol) would also work.
      It is possible to switch between photo albums (represented by subdirectories of the loaded directory structure), to go forward , backward or to stop the photoshow by speaking a command.
      It would be easy to modify the module with regular scans of the directory structure. There is already a command to reload the file structure during the run of the slideshow. Access to pictures on a remote server (i.e. NAS) works fine by mounting the remote folders into the local directory structure.
      With the command ‘INFO_BOARD’ the slideshow stop, hide itselfs and switch back to info mode by showing up all other module.

      I would be pleased if my modul can be used as a base for further development by a more experienced programmer like me.

      posted in Requests
      Mr.SpontiM
      Mr.Sponti
    • RE: Electron CPU usage

      @Mykle1 Yes, I downgraded due to high CPU usage with MM2.1.1 & electron1.4.17. Top showed a usage between 100 and 200% and my own written moduls had a really bad performance.

      posted in Troubleshooting
      Mr.SpontiM
      Mr.Sponti

    Latest posts made by Mr.Sponti

    • RE: Trixie/node v24 - timeouts on request to the internet

      After further investigations I found the reason for the heavy CPU load. Originator for this behaviour ist the parameter “ELECTRON_ENABLE_GPU=1”. If this parameter is undefined my CPU load is as expected.

      I’ve also had a deeper look to run the “VLC video player” with RTSP streams from my cameras. Using the following command line parameter leads in my environment to best results:

      var opts = { detached: false, env: environ }		
      var args = ["-I dummy",
         "-q",
         "--zoom=" + this.window.zoom.toString(),
         "--video-x=" + this.window.x.toString(),		//	x,y-positioning does't work
         "--video-y=" + this.window.y.toString(),		//	...
         "--no-audio",
         "--video-on-top",
         "--no-video-deco",
         "--no-osd",
         "--no-video-title-show",
         "--network-caching=1000",
         "--rtsp-tcp",
         `${this.streams[stream].url}`
      ]
      //console.log(playerPath + this.player, args)
      this.streaming.player = spawn(playerPath + this.player, args, opts)
      
      posted in Troubleshooting
      Mr.SpontiM
      Mr.Sponti
    • RE: Trixie/node v24 - timeouts on request to the internet

      Hi Sam, thank you for your fast response and support!
      I’ve played with the mmFetchTimout parameter without success. As I didn’t had any network issues with Bullseye, MM v2.26.0 and node v20.18.0, I downgraded node to v22.18 and the network issues are gone.
      But I’m now faced with another big issue under Trixie. If I schedule modules using graphic functions like vlc, the CPU load increase dramatically. There is one electron process with parameterer –type=zygote consuming the whole CPU capacity.

      14c23523-77f0-4375-ae25-1a860a46b883-image.png

      From copilot I got the answer: High CPU usage from electron --type=zygote is usually tied to Chromium’s zygote process, which forks renderer processes.

      Do you have any idea how to get this problem under control?

      posted in Troubleshooting
      Mr.SpontiM
      Mr.Sponti
    • Trixie/node v24 - timeouts on request to the internet

      I’ve migrated my MagigMirror installation on a RPI 4 from Bullseye to Trixie, running now MM V2.33.0 and node v24.11.1.
      After solving some smaller issues with the NetworkManager configuration, everything is now running fine, except that I observe sometimes timeouts on requests to the internet. Fetching Goggle calendar entries or access to Spotify endpoints sometimes end up in timeouts, particularly visible at startup of MagicMirror. (and no, it’s not related to any wrong URL )

      The same MM config is running under Bullseye, MM v2.26.0 and node v20.18.0 without any network issues. It also not a problem of wayland, as I get the same error messages running the config under x11. It seems that this behaviour is related to node V24. Is this a known issue? Is there someone who is fighting with similar issues? Has someone a sustainable solution for that problem?

      [2025-12-01 11:52:18.102] [LOG]   Launching application.
      [2025-12-01 11:52:22.644] [INFO]
      ####  System Information  ####
      - SYSTEM:   manufacturer: Raspberry Pi Foundation; model: Raspberry Pi 4 Model B Rev 1.1; virtual: false; MM: 2.33.0
      - OS:       platform: linux; distro: Debian GNU/Linux; release: 13; arch: arm64; kernel: 6.12.47+rpt-rpi-v8
      - VERSIONS: electron: 39.2.3; used node: 22.21.1; installed node: 24.11.1; npm: 11.6.2; pm2: 6.0.13
      - ENV:      XDG_SESSION_TYPE: tty; MM_CONFIG_FILE: undefined
                  WAYLAND_DISPLAY:  wayland-0; DISPLAY: undefined; ELECTRON_ENABLE_GPU: undefined
      - RAM:      total: 905.64 MB; free: 397.65 MB; used: 507.99 MB
      - OTHERS:   uptime: 23 minutes; timeZone: Europe/Berlin
      [2025-12-01 11:52:23.927] [LOG]   Create new calendarfetcher for url: https://calendar.google.com/calendar/ical/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%40group.calendar.google.com/private-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/basic.ics - Interval: 5400000
      [2025-12-01 11:52:24.132] [LOG]   Create new calendarfetcher for url: https://www.schulferien.org/media/ical/deutschland/ferien_nordrhein-westfalen_2025.ics?k=wMVRLvKrstqVXYv0MZJF9BwhEW4cGfQFjuutfjiALP5Hj700di6oEuYaFGd4tDTvYrLNzQgB7m-GlFC60I4jasaxLk6nJd_OY70AeBteoOU - Interval: 900000
      [2025-12-01 11:52:24.136] [LOG]   Create new calendarfetcher for url: https://calendar.google.com/calendar/ical/de.german%23holiday%40group.v.calendar.google.com/public/basic.ics - Interval: 900000
      [2025-12-01 11:52:24.788] [ERROR] Calendar Error. Could not fetch calendar:  https://calendar.google.com/calendar/ical/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%40group.calendar.google.com/private-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/basic.ics TypeError: fetch failed
          at node:internal/deps/undici/undici:14900:13
          at processTicksAndRejections (node:internal/process/task_queues:105:5)
          at runNextTicks (node:internal/process/task_queues:69:3)
          at process.processTimers (node:internal/timers:520:9) {
        [cause]: AggregateError [ETIMEDOUT]:
            at internalConnectMultiple (node:net:1134:18)
            at internalConnectMultiple (node:net:1210:5)
            at Timeout.internalConnectMultipleTimeout (node:net:1742:5)
            at listOnTimeout (node:internal/timers:590:11)
            at process.processTimers (node:internal/timers:523:7) {
          code: 'ETIMEDOUT',
          [errors]: [ [Error], [Error] ]
        }
      }
      
      
      posted in Troubleshooting
      Mr.SpontiM
      Mr.Sponti
    • RE: MMM-Mplayer video issues

      @ge
      I’ve reworked the MMM-RTSPstream module and tried mpv, mplayer and vlc for displaying rtsp-streams from Reolink cameras. Maybe the following command line options are also suitable for your camera.

      		const environ = Object.assign(process.env, { DISPLAY: ":0" })
      		var opts = { detached: true, env: environ }
      		if (this.player === 'mpv') {
      			// Define the MPV command line flags
      			var args = [`${this.streams[stream].url}`,
      						"--geometry="+this.windowWidth+"+"+this.windowX+"+"+this.windowY,
      						"--ontop",
      						"--title-bar=no",
      						"--border=no",
      						"--vo=gpu",
      //						"--hwdec=drm",
      						"--gpu-context=x11vk",
      						"--ao=null",
      						]			
      		} else if (this.player === 'mplayer') {
      			// Define the Mplayer command line flags
      			var args = [`${this.streams[stream].url}`,
      						"-geometry", `${this.windowX}:${this.windowY}`,
      						"-xy", `${this.windowWidth}`,
      						"-noborder",
      						"-nosound",
      						"-nolirc",
      						"-vo", "xv,gl,gl_nosw,vdpau",
      						"-prefer-ipv4",
      						"-cache", "8192",
      						"-rtsp-stream-over-tcp",
      						"-noconsolecontrols",
      						"-really-quiet",
      						]
      		} else if (this.player === 'vlc') {	
      			// Generate the VLC window
      			var args = ["-I dummy",
      						"--video-on-top",
      						"--no-video-deco",
      						"--no-osd",
      						"--no-embedded-video",
      						"--no-audio",
      						//"--no-video-title-show",
      						//"--network-caching=1000",						
      						`${this.streams[stream].url}`
      						]
      		}
      
      posted in Troubleshooting
      Mr.SpontiM
      Mr.Sponti
    • RE: Version 2.33.0/node v22.21.0 - Error: write EFAULT

      Sam, the kernel buffer does not include a line with ‘virtual’ or ‘hypervisor’. So, the retuen value of the execSync is a emty string.

      pi@devpi:~ $ dmesg | grep virtual
      pi@devpi:~ $ dmesg | grep hypervisor
      pi@devpi:~ $ dmesg | grep zram0
      [    4.928549] zram_generator::config[229]: zram0: system has too much memory (905MB), limit is 0MB, ignoring.
      [    5.775275] systemd[1]: Expecting device dev-zram0.device - /dev/zram0...
      [    5.977908] zram: Added device: zram0
      [    6.771158] zram0: detected capacity change from 0 to 1853440
      [    6.998349] Adding 926716k swap on /dev/zram0.  Priority:100 extents:1 across:926716k SS
      
      
      posted in Troubleshooting
      Mr.SpontiM
      Mr.Sponti
    • RE: Version 2.33 - module 'weather' - openweathermap and 'One Call by Call' plan

      Ok, my fault, thanks a lot!

      posted in Troubleshooting
      Mr.SpontiM
      Mr.Sponti
    • Version 2.33 - module 'weather' - openweathermap and 'One Call by Call' plan

      Currently I migrate from Magicmirror v2.26.0 to v2.33.0. One issue , the weather module does not start. The module provide me from the provider openweathermap the message:

       {"cod":401, "message": "Please note that using One Call 3.0 requires a separate subscription to the One Call by Call plan. Learn more here https://openweathermap.org/price. If you have a valid subscription to the One Call by Call plan, but still receive this error, then please see https://openweathermap.org/faq#error401 for more info."}
      

      I don’t have a supscription for the ‘One Call by Call’ plan. But, if I copy the weather module (complete directory) from MM v2.26 to v2.33 I get the forecast weather data from openweathermap without any difficulty and everything is working fine. So there must be a modification in the weather module which leads to the described issue.
      For the moment I’ve a workaround by overriting the wether module with the old version, but it would be nice and helpful if an expert could do a deeper analysis for the cause and understanding of the issue.
      Thanks!
      Here is my configuration for the module:

      			module: 'weather',
      			position: 'top_right',
      			header: 'Wetter Vorhersage für ',
      			config: {
      				weatherProvider: "openweathermap",
      				type: "forecast",
      				tableClass: 'small',
      				locationID: "2879315",                      	
      				apiKey: "2xxxxxxxxx...xxxxxxxxxd",		//apiKey from http://www.openweathermap.org
      				tempUnits: "metric",
      				roundTemp: true,				
      				onlyTemp: true,
      				colored: true,
      				maxNumberOfDays: 4,
      				ignoreToday: true,
      				updateInterval: 3600000,					// every hour				
      				initialLoadDelay: 3000,				
      			}
      
      posted in Troubleshooting
      Mr.SpontiM
      Mr.Sponti
    • RE: Version 2.33.0/node v22.21.0 - Error: write EFAULT

      Yes, without any error, but also without any output!

      posted in Troubleshooting
      Mr.SpontiM
      Mr.Sponti
    • RE: Version 2.33.0/node v22.21.0 - Error: write EFAULT

      So, after further investigations I found the issue in the module: ./MagicMirror/node_modules/systeminformation/lib/system.js:175:28

      I’m not a nodejs expert, but it seems that execSync returns a invalid or corrupted raw buffer. The encoding option solved the issue, as in my case execSync returns now an empty string.

      const stdout = execSync('dmesg 2>/dev/null | grep -iE "virtual|hypervisor" | grep -iE "vmware|qemu|kvm|xen" | grep -viE "Nested Virtualization|/virtual/"', {encoding: 'utf-8'});
      
      posted in Troubleshooting
      Mr.SpontiM
      Mr.Sponti
    • RE: Version 2.33.0/node v22.21.0 - Error: write EFAULT

      Here my System Information (started with: node --run start:wayland):

      [2025-11-22 10:47:48.003] [LOG]   Sockets connected & modules started ...
      [2025-11-22 10:47:49.223] [ERROR] Error: write EFAULT
          at afterWriteDispatched (node:internal/stream_base_commons:159:15)
          at writeGeneric (node:internal/stream_base_commons:150:3)
          at Socket._writeGeneric (node:net:966:11)
          at Socket._write (node:net:978:8)
          at writeOrBuffer (node:internal/streams/writable:572:12)
          at _write (node:internal/streams/writable:501:10)
          at Writable.write (node:internal/streams/writable:510:10)
          at execSync (node:child_process:999:20)
          at node:electron/js2c/node_init:2:17346
          at /home/pi/MagicMirror/node_modules/systeminformation/lib/system.js:175:28
          at ChildProcess.exithandler (node:child_process:410:7)
          at ChildProcess.emit (node:events:519:28)
          at maybeClose (node:internal/child_process:1101:16)
          at Socket.<anonymous> (node:internal/child_process:456:11)
          at Socket.emit (node:events:519:28)
          at Pipe.<anonymous> (node:net:346:12)
      [2025-11-22 10:47:49.224] [LOG]   Node NOT Exiting...
      [2025-11-22 10:47:49.395] [LOG]   Launching application.
      [2025-11-22 10:47:56.485] [INFO]
      ####  System Information  ####
      - SYSTEM:   manufacturer: Raspberry Pi Foundation; model: Raspberry Pi 4 Model B Rev 1.1; virtual: false; MM: 2.33.0
      - OS:       platform: linux; distro: Debian GNU/Linux; release: 13; arch: arm64; kernel: 6.12.47+rpt-rpi-v8
      - VERSIONS: electron: 38.1.2; used node: 22.19.0; installed node: 22.21.0; npm: 10.9.4; pm2: 6.0.13
      - ENV:      XDG_SESSION_TYPE: tty; MM_CONFIG_FILE: undefined
                  WAYLAND_DISPLAY:  wayland-0; DISPLAY: :0; ELECTRON_ENABLE_GPU: undefined
      - RAM:      total: 906.64 MB; free: 449.86 MB; used: 456.78 MB
      - OTHERS:   uptime: 21 minutes; timeZone: Europe/Berlin
      
      posted in Troubleshooting
      Mr.SpontiM
      Mr.Sponti