MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    1. Home
    2. Mr.Sponti
    3. Posts
    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

    Posts

    Recent Best Controversial
    • 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
    • Version 2.33.0/node v22.21.0 - Error: write EFAULT

      I’ve done a new installation on a RPI 4. Everthing is running fine, independant of a error message at start time where I don’t have any idea which module or core function produce the message.
      Here is my configuration:
      MM v2.33.0
      node 22.21.0
      trixie: Linux devpi 6.12.47+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.47-1+rpt1 (2025-09-16) aarch64 GNU/Linux

      Maybe, there is someone who has already fixed that problem. How to proceed to identify this issue?

      Nov 21 15:18:47 devpi mm[2438]: [2025-11-21 15:18:47.026] [LOG]   Starting MagicMirror: v2.33.0
      Nov 21 15:18:47 devpi mm[2438]: [2025-11-21 15:18:47.034] [LOG]   Loading config ...
      ...
      Nov 21 15:18:55 devpi mm[2438]: [2025-11-21 15:18:55.059] [LOG]   MMM-NotificationBoard helper started ...
      Nov 21 15:18:55 devpi mm[2438]: [2025-11-21 15:18:55.060] [LOG]   Connecting socket for: MMM-RTSPphas
      Nov 21 15:18:55 devpi mm[2438]: [2025-11-21 15:18:55.060] [LOG]   MMM-RTSPphas helper started ...
      Nov 21 15:18:55 devpi mm[2438]: [2025-11-21 15:18:55.060] [LOG]   Connecting socket for: MMM-EnergyMonitor
      Nov 21 15:18:55 devpi mm[2438]: [2025-11-21 15:18:55.131] [LOG]   Connecting socket for: MMM-Spotify
      Nov 21 15:18:55 devpi mm[2438]: [2025-11-21 15:18:55.133] [LOG]   Connecting socket for: MMM-SpeechToCommand
      Nov 21 15:18:55 devpi mm[2438]: [2025-11-21 15:18:55.134] [LOG]   MMM-SpeechToCommand helper started ...
      Nov 21 15:18:55 devpi mm[2438]: [2025-11-21 15:18:55.135] [LOG]   Sockets connected & modules started ...
      Nov 21 15:18:56 devpi mm[2438]: [2025-11-21 15:18:56.117] [ERROR] Error: write EFAULT
      Nov 21 15:18:56 devpi mm[2438]:     at afterWriteDispatched (node:internal/stream_base_commons:159:15)
      Nov 21 15:18:56 devpi mm[2438]:     at writeGeneric (node:internal/stream_base_commons:150:3)
      Nov 21 15:18:56 devpi mm[2438]:     at Socket._writeGeneric (node:net:966:11)
      Nov 21 15:18:56 devpi mm[2438]:     at Socket._write (node:net:978:8)
      Nov 21 15:18:56 devpi mm[2438]:     at writeOrBuffer (node:internal/streams/writable:572:12)
      Nov 21 15:18:56 devpi mm[2438]:     at _write (node:internal/streams/writable:501:10)
      Nov 21 15:18:56 devpi mm[2438]:     at Writable.write (node:internal/streams/writable:510:10)
      Nov 21 15:18:56 devpi mm[2438]:     at execSync (node:child_process:999:20)
      Nov 21 15:18:56 devpi mm[2438]:     at node:electron/js2c/node_init:2:17346
      Nov 21 15:18:56 devpi mm[2438]:     at /home/pi/MagicMirror/node_modules/systeminformation/lib/system.js:175:28
      Nov 21 15:18:56 devpi mm[2438]:     at ChildProcess.exithandler (node:child_process:410:7)
      Nov 21 15:18:56 devpi mm[2438]:     at ChildProcess.emit (node:events:519:28)
      Nov 21 15:18:56 devpi mm[2438]:     at maybeClose (node:internal/child_process:1101:16)
      Nov 21 15:18:56 devpi mm[2438]:     at Socket.<anonymous> (node:internal/child_process:456:11)
      Nov 21 15:18:56 devpi mm[2438]:     at Socket.emit (node:events:519:28)
      Nov 21 15:18:56 devpi mm[2438]:     at Pipe.<anonymous> (node:net:346:12)
      Nov 21 15:18:56 devpi mm[2438]: [2025-11-21 15:18:56.118] [LOG]   Node NOT Exiting...
      Nov 21 15:18:56 devpi mm[2438]: [2025-11-21 15:18:56.283] [LOG]   Launching application.
      
      posted in Troubleshooting
      Mr.SpontiM
      Mr.Sponti
    • RE: MagicMirror Pimatic (Home Automation) Dashboard

      Sandy, here is my definition for the VariableDevice:

      Devices -> Add a new device… -> Class: VariableDevice --> Variables Add -->

      0_1524804490437_MMDNB.PNG

      posted in Show your Mirror
      Mr.SpontiM
      Mr.Sponti
    • RE: MagicMirror Pimatic (Home Automation) Dashboard

      @Mr.Sponti said in MagicMirror Pimatic (Home Automation) Dashboard:

      “Livingroom temperature {round($DST_Temperature,1)} °C - humidity {round($DST_Humidity,1)} %”

      Sandy, I’ve tested the notification board with the following string varibale. The units of your measured values need to be part of the string defined in the field expression of your variable device.

      “Livingroom temperature {round($Temperaturen.Esszimmer,1)} °C - humidity {round($Temperaturen.Esszimmer,1)} %”

      posted in Show your Mirror
      Mr.SpontiM
      Mr.Sponti
    • RE: MagicMirror Pimatic (Home Automation) Dashboard

      Hi Sandy,
      to display temperature and the humidity of your DST sensor in the Notification Board with rounded values and the right units should already possible. Try to use the following approach:

      1. In pimatic create a VariableDevice with a string variable and assign a string including your temperature and humidity Variable.attributes of your DST sensor.
        (e.q. “Livingroom temperature {round($DST_Temperature,1)} °C - humidity {round($DST_Humidity,1)} %”

      2. Configure the new VariableDevice into the Notification Board of the MMM-Pimatic module

      I didn’t test that, but it should work in that way.

      posted in Show your Mirror
      Mr.SpontiM
      Mr.Sponti
    • RE: MagicMirror Pimatic (Home Automation) Dashboard

      Rounding of the values is not a big issue as there is a method '.toFixed(2) ’ available. At the moment the unit specified in the config file is assigned to all values in the table. To implement the value rounding and a individual unit for every value I need to enhance the code. I will put it on my action list for the next version.

      posted in Show your Mirror
      Mr.SpontiM
      Mr.Sponti
    • RE: MagicMirror Pimatic (Home Automation) Dashboard

      @ganther said in MagicMirror Pimatic (Home Automation) Dashboard:

      dhtsensor

      Hi Sandy, how is your dht22-sensor connected? Is the sensor direct connected to the Rasperry GPIO pins and you use the plugin “dht-sensors”?
      What shows up for the sensor if you create a listing of “variables” from your pimatic menu?

      posted in Show your Mirror
      Mr.SpontiM
      Mr.Sponti
    • RE: MagicMirror Pimatic (Home Automation) Dashboard

      @Peter , you can ignore these Warnings, but you need to install the socket.io-client modul:

      cd  ~/MagicMirror/modules/MMM-Pimatic
      npm install socket.io-client
      
      posted in Show your Mirror
      Mr.SpontiM
      Mr.Sponti
    • RE: MagicMirror Pimatic (Home Automation) Dashboard

      @Peter Here you can find the latest version of my MMM-Pimatic module. The README isn’t yet covering all features but should be sufficient for the installation and basic configuration of the module.
      Please feel free to contact me if you need help to get it running.

      posted in Show your Mirror
      Mr.SpontiM
      Mr.Sponti
    • RE: MagicMirror Pimatic (Home Automation) Dashboard

      @Peter
      I’ve reworked my MMM-Pimatic modul but need now to adjust the description on gihub. The modul connects to a pimatic server to listen on device attribute changes and displays changes as notifications on the MagicMirror screen. Temperature values can be displayed in a separate table. As soon as I’ve completed the Readme, I will send you a message.

      posted in Show your Mirror
      Mr.SpontiM
      Mr.Sponti
    • RE: Quit MM with script

      @start-the-fire said in Quit MM with script:

      CTRL-C isn’t an option cause I’m us

      Hi, maybe you can use my bash script mmhelper.sh to start/stop MagicMirror from the command line or from another script (e.q. python, nodejs).

      #!/bin/bash
      #
      #	mmhelper.sh  start | stop | status | hdmi_on | hdmi_off| hdmi_status 
      #
      #   Last edited:    10.09.2017          (c) Mr.Sponti
      #
      #set -x
      
      HOME=/home/pi
      PATH=$PATH:$PWD
      MY_NAME=$(basename -- "$0")
      
      function monitor_on() {
          /opt/vc/bin/tvservice --preferred > /dev/null 2>&1
          sudo chvt 6
          sudo chvt 7
      }
      
      function monitor_off() {
          /opt/vc/bin/tvservice --off > /dev/null 2>&1
      }
      
      function monitor_status() {
          #  get power status --> 1 = off ,  0 = on
          power=$(/opt/vc/bin/tvservice --status |grep "TV is off"|wc -l)
          if [ $power -eq 1 ]
          then
              echo "off"
          elif [ $power -eq 0 ]
          then
              echo "on"
          fi
      }
      
      # check first runstring parameter
      if [ -z "$1" ]
      then
      	cmd=start
      else
      	cmd=$1
      fi
      
      case $cmd in
          "start") #  start MagicMirror
              pm2 start mm
              ;;
          "stop") #  stop MagicMirror
              pm2 stop all
              ;; 
          "status")
              pm2 status mm
              ;;
          "hdmi_on") #  switch monitor on
              monitor_on
              monitor_status
              ;;
          "hdmi_off") # switch monitor off
              monitor_off
              monitor_status
              ;;       
          "hdmi_status")
              monitor_status
              ;;         
          *) echo "undefined command"
             echo "usage: $MY_NAME start|stop|status|hdmi_on|hdmi_off|hdmi_status"
      esac
      

      You also need the mm.sh script in your home directory!

      pm2 flush
      
      # start Magic Mirror system
      cd ~/MagicMirror
      DISPLAY=:0 npm start
      

      Merry Christmas!

      posted in Troubleshooting
      Mr.SpontiM
      Mr.Sponti
    • 1
    • 2
    • 1 / 2