Read the statement by Michael Teeuw here.
Motion Detector
-
I disabled mmm-systemperature and now I have no errors on my log but after first deactivation of the monitor my raspberry freeze completely. Before the pull everything works perfekt beside DHT, now nothing works ;o( strange…
-
@trividar I’m having a similar issue. My mirror will turn on and off a few times, but after a few minutes it will peg the RAM and completely lock up the pi. Not sure what to try next.
-
I have also experienced something similar, always while running under a heavy load. Are you running a lot of modules, or anything that is very intensive? Some tasks like video streaming are incredibly demanding on the CPU.
My working solution was to modify my module selection so I’m not overworking the processor, and to increase the ‘updateInterval’ in my SystemStats section of config.js. Maybe try 15000 or 20000ms, see if it the crash occurs less often. I also run WatchDog and it would register the SystemStats failure. I don’t see WatchDog in these logs so this may not apply, but I also added increased ‘interval’ and ‘timeout’ settings to config.js. I have not seen this SystemStats crash for quite a while.
FWIW - after this crash WatchDog/pm2 does NOT restart my mm shell. All the other failures auto-restart, but something about this one crashes to the desktop. Also - sorry for threadjacking a “Motion Detection” thread!
-
I tried to increase the updateInterval to 200000ms and disabled all other modules, but always after the second time the monitor turn off my raspberry freeze completely and I have to reboot. My CPU is around 9 -15% when they freeze. I try again with the old version oft he motion-detector and it works, not perfect but works.
-
@in_a_days I guess I do run more modules than what “fit” the screen, but they’re cool and I can’t make up my mind which ones I want to keep lol.
However, I don’t believe that is the issue here. I have disabled all but three modules and still face the same issue. The second time the screen goes to sleep, it will not wake up. It doesn’t seem to matter what the CPU load or RAM is at.
Watching the pm2 logs, I get an uncaught exception error when the screen is supposed to wake up, but that is all the details I get from it. (That I know how to see, still new to this)
-
Unfortunately, I’m pretty new too!
To update - my mirror would still freeze (though it might take a couple hours) even after the changes I suggested. For me, the last error before the crash ALWAYS comes from the system status module (same exact ENOMEM error from the @trividar post). With the sys stat module disabled, I seem to be crash free. May not be the same thing you’re experiencing.
I also removed Watchdog after reading a bit more about it’s purpose.
If you are able to copy the log file from your most recent crash, someone smarter than me may be able to help.
-
@in_a_days how did you disabled sys stat module? and what is that? by the way I have the same thing happen like @trividar
-
The system stat module I’m referring to is this one.
https://github.com/BenRoe/MMM-SystemStats
It would have to be specifically installed by the user. But looking at the screenshot from @trividar, there are a couple different modules throwing up errors. These couple lines show the modules that appear to be crashing the system:
You can see mmm-systemtemperature and MMM-DHT22 producing error events. I would start by commenting out these modules. Just add a
/*
before and a
*/
after the section of your config.js file that loads these modules. If that eliminates the crashing you can be confident it is these modules causing the problem, and you can either try to fix them or look for alternatives.
EDIT: The common theme between my error and the error posted here is the ENOMEM code, and the fact that all these modules are measuring system temperature. MMM-SystemStats, mmm-systemtemperature, and MMM-DHT22 are all reading temperatures. I would be willing to bet there’s a bug or memory leak somewhere in the code that is pulling or logging temperature info. I’m not convinced any of these particular errors are related to the Motion Detector module.
-
Well… so much for that theory lol. I just got the ENOMEM error from Motion Detector.
-
I had the same issue.
For me was the solution to increase the capture interval time from 100ms to 1000ms.
With the default value of 100ms the overall systemload is to high and one of the two electron processes will use after some time around 85% of the memory. At that value the system slows down extremely and the memory swap process will take all cpu ressources while trying to free up physical memory.
And then anything can happen … (white screen, unresponsive, ENOMEM exceptions, …)Go to motiondetector.js and search for this code part:
DiffCamEngine.init(
{
video: video,
motionCanvas: canvas,Add the following line to change the default capture interval time of 100ms to 1000ms:
DiffCamEngine.init(
{
video: video,
captureIntervalTime: 1000,
motionCanvas: canvas,Observe the two electron processes and they will not reach memory values higher than 30%.