@sdetweil So what you’re saying is that maybe I wanna start by upgrading? lol
I’m running on a Linux virtual guest, so I can easily snapshot it before I try and upgrade. What’s the best option for me to get current?
@sdetweil So what you’re saying is that maybe I wanna start by upgrading? lol
I’m running on a Linux virtual guest, so I can easily snapshot it before I try and upgrade. What’s the best option for me to get current?
@sdetweil Issue I see now is that the indicated lines to add the lines after do not exist in my versions of server or socketclient…
@sdetweil Given that the weather information continues to update, wouldn’t that indiicate that the system is remaining connected? Additionally, there are three established connections to the server from the client when this occurs.
I have MM running on a virtual guest in my home lab. I have made an install on a RPi and have it connecting to the main “server” previously mentioned to display calendar, time, weather, and photos.
The time continues to advance and the weather module updates over time as the temp or conditions change. While I suspect that the calendar info is also updating as would be expected, I have not done any explicit testing to verify that piece. The photos, however, stop changing out and it seems to only happen from this one client (I have connected a web browser from other client devices and let it sit and the photos seem to continue to advance and change as would be expected). This leads me to believe that the culprit may be electron, but I have no idea how to go about troubleshooting this to figure it out (and fix it).
Makes sense… Are there plans, then, to change the startup to a single command (script) that will read some sort of config file or accept a command-line parameter to control what gets started? I had to do a bit of digging to find the different (correct) commands to use to start the server on a headless machine and the client on a Pi and then put them into the “mm.sh” startup script so that PM2 could load each of them correctly. This doesn’t seem to match up with what’s documented, either.
In the main configuration file, there is a section to specify “serveronly” as an option which is supposed to NOT load any client resources. Attempting to start the mirror with npm start doesn’t seem to actually “respect” this option and it constantly complains about client-side components that may not be installed or operational.
I’ve also not found anywhere in the configuration where you might be able to specify “clientonly” and indicate the server to connect to. Why is this? Why do I need three different ways of starting the mirror depending on if I’m running a server, a client, or both?
What am I missing here?
After a LOT of different attempts at upgrades, fail-backs, new installs, etc., I believe I finally corrected the issue…
It appears that PM2 was either somehow corrupted during an update attempt or just simply too far out of date. Attempting to run PM2 with certain command options (like stop or even status) was resulting in errors indicating some sort of circular reference. After doing a forced upgrade to the latest version, it stopped showing these errors and the mirror is to running as expected.
I did make some additional changes that include copying the core MM directory off to another linux host where I now run the mirror as a server. The RPi is now purely a client and it loads noticeably quicker as a result.
Pretty sure it’s an out of memory issue. Once it crashes, the free memory jumps way up then trends back down once it restarts.
I’ve also discovered that this seems to be purely a “client” problem as I can connect to the Pi from a remote machine using a web browser and it will run just fine without any hiccups while the local client on the Pi crashes about every 60-70 seconds which correlates to two load intervals for photos. Maybe the MMM-ImagesPhotos module isn’t releasing memory properly?
The device is restarting for what appears to be out of memory / swap space issues. Every time the system crashes and restarts, /dev/shm is at zero available space.
This location appears to be where the processes are storing content from the image files that are being loaded and it’s apparently causing something to overrun the available space. I have added images, but that was a couple of weeks ago (before even applying the OS updates) and everything ran perfectly fine.
Forgive me, but “can’t do” what, exactly?
I have reverted to the exact software, install, and configuration that was in place before running the upgrade by renaming the upgraded directory and then renaming the backed up directory back to the original name. Unless there are files downloaded and stored -outside- of the MagicMirror directory, this should have ensured a complete reversion to the working files.
Umm… git stash pop?
I renamed the upgraded install to “MM-Upgraded” and then renamed my copied directory back to “MagicMirror”. Neither of them works properly at this point and the copied directory was never touched during the upgrade process.
pi 3B+
uname -a output
Linux raspberrypi 5.10.103-v7+ #1529 SMP Tue Mar 8 12:21:37 GMT 2022 armv7l GNU/Linux
How do I post the log? Far too large to go into a post, and isn’t a support file type to attach.
Error on my part… I still have the upgraded directory.
There is no info from the logs that I can tell that shows any sort of crash or anything. And the line from the npm logs just shows the run-start.sh command.
My MM install has been running reasonably well for a while and I have not pushed any updates to it in probably 18 months. I recently applied the most recent updates for Raspbian and things were still running correctly for maybe around a week.
Yesterday, I decided I was going to attempt an upgrade using one of the scripts. So, I did an rsync of the running directory to a second directory on the local device then ran the upgrade script.
Upon starting the mirror, it started complaining about an out-of-date module (MMM-ImagesPhotos). That module wasn’t installed from the original source, so updating it was not going to be something I could do without a bunch of research. So, I stopped the mirror, did an rm-rf on the MM directory, then renamed the backup directory back to its original name.
I -thought- it was running properly, but today it keeps restarting Chromium browser every minute or two. Where do I even begin?
@MMRIZE Thanks for the pointer.
Why wouldn’t I use the “Outline” option? That seems like it would achieve the result I’m after as well?
Also, I have absolutely no clue where or how to implement these changes. Working my way through CSS and such is an immensely trial-and-error process for me that tends to requires hours of “Developer Console” type access through a browser trying to chase down the files involved, tinkering with changes, and often times not actually getting the result I want without at least breaking one other thing.
@sdetweil While a “dynamic” solutions sounds like it would be great, I don’t see it as being terribly feasible.
Every photo that loads would have to be analyzed to determine something like a ‘brightness level’ or similar. Below a value gets a dark font, above a value gets a light font. That would have to map to regions on the screen since one picture could have multiple areas that are above and below that particular level.
Then, you’d have to assess the relationship between the area in the photo and the actual area where the text would be placed, taking into account different placements for text size, string length, wrap, etc.
Just seems like a two color font would address it more simply. Or some sort of way to “outline” text with a different color than the color of the font itself.
My mirror is part digital photo frame and part info display tool. The photos are shown in random order and are all full screen.
The info sections are all currently using various shades of gray fonts which are easy to see when the photo area “behind them” is darker. When the photo area is fairly light, however, the text is unreadable.
I’m wondering if there’s either a two color font (gray with a black outline or similar) or a way to render an outline around all of the font characters that are currently being shown. I’d want this to apply to all text sections in the mirror if I could do it.