Read the statement by Michael Teeuw here.
Third-Party Module - how to get help?
-
At a minimum, the apt-get update / upgrade seems to have at least helped. After installing the updates and restarting, I’ve been running this module with clock, calendar, current weather, and weather forecast all enabled and it hasn’t crashed in about an hour.
I stopped everything and reverted to the BackgroundSlideshow module to see if it would also run clean, but it died pretty quickly. I’ve flushed the logs again (although I did capture their contents from the other module’s crash) and once again changed over to ImagesPhotos to see what happens after another run.
While I’m waiting to see if it will crash, I have some questions about the rendering configuration.
I’ve tried both the “fullscreen” and “middle_center” settings and the photos are not constrained to the screen (in terms of the actual image, not where it’s shown). I can change the details so that I use less than full height and/or width, and there is a black border. However, the image itself is getting cropped - badly.
How can I get this to display the entire image on the screen like I can with the other module?
-
[TAILING] Tailing last 100 lines for [all] processes (change the value with --lines option) /home/pi/.pm2/pm2.log last 100 lines: PM2 | 2019-12-12T14:19:37: PM2 log: App [mm:0] starting in -fork mode- PM2 | 2019-12-12T14:19:37: PM2 log: App [mm:0] online PM2 | 2019-12-12T14:41:26: PM2 log: Stopping app:mm id:0 PM2 | 2019-12-12T14:41:26: PM2 log: pid=4285 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T14:41:26: PM2 log: pid=4285 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T14:41:26: PM2 log: pid=4285 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T14:41:26: PM2 log: pid=4285 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T14:41:26: PM2 log: pid=4285 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T14:41:26: PM2 log: pid=4285 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T14:41:27: PM2 log: pid=4285 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T14:41:27: PM2 log: pid=4285 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T14:41:27: PM2 log: pid=4285 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T14:41:27: PM2 log: pid=4285 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T14:41:27: PM2 log: pid=4285 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T14:41:27: PM2 log: pid=4285 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T14:41:27: PM2 log: pid=4285 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T14:41:27: PM2 log: App [mm:0] exited with code [0] via signal [SIGINT] PM2 | 2019-12-12T14:41:27: PM2 log: pid=4285 msg=process killed PM2 | 2019-12-12T14:41:27: PM2 log: App [mm:0] starting in -fork mode- PM2 | 2019-12-12T14:41:27: PM2 log: App [mm:0] online PM2 | 2019-12-12T14:43:33: PM2 log: Stopping app:mm id:0 PM2 | 2019-12-12T14:43:33: PM2 log: App [mm:0] exited with code [0] via signal [SIGINT] PM2 | 2019-12-12T14:43:33: PM2 log: pid=4543 msg=process killed PM2 | 2019-12-12T14:43:33: PM2 log: App [mm:0] starting in -fork mode- PM2 | 2019-12-12T14:43:33: PM2 log: App [mm:0] online PM2 | 2019-12-12T14:46:33: PM2 log: Stopping app:mm id:0 PM2 | 2019-12-12T14:46:33: PM2 log: pid=4667 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T14:46:33: PM2 log: App [mm:0] exited with code [0] via signal [SIGINT] PM2 | 2019-12-12T14:46:33: PM2 log: pid=4667 msg=process killed PM2 | 2019-12-12T14:46:33: PM2 log: App [mm:0] starting in -fork mode- PM2 | 2019-12-12T14:46:33: PM2 log: App [mm:0] online PM2 | 2019-12-12T14:47:42: PM2 log: Stopping app:mm id:0 PM2 | 2019-12-12T14:47:43: PM2 log: pid=4822 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T14:47:43: PM2 log: App [mm:0] exited with code [0] via signal [SIGINT] PM2 | 2019-12-12T14:47:43: PM2 log: pid=4822 msg=process killed PM2 | 2019-12-12T14:47:43: PM2 log: App [mm:0] starting in -fork mode- PM2 | 2019-12-12T14:47:43: PM2 log: App [mm:0] online PM2 | 2019-12-12T15:00:40: PM2 log: Stopping app:mm id:0 PM2 | 2019-12-12T15:00:41: PM2 log: pid=4943 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T15:00:41: PM2 log: pid=4943 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T15:00:41: PM2 log: pid=4943 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T15:00:41: PM2 log: pid=4943 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T15:00:41: PM2 log: pid=4943 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T15:00:41: PM2 log: pid=4943 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T15:00:41: PM2 log: pid=4943 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T15:00:41: PM2 log: pid=4943 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T15:00:41: PM2 log: pid=4943 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T15:00:42: PM2 log: pid=4943 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T15:00:42: PM2 log: pid=4943 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T15:00:42: PM2 log: pid=4943 msg=failed to kill - retrying in 100ms PM2 | 2019-12-12T15:00:42: PM2 log: App [mm:0] exited with code [0] via signal [SIGINT] PM2 | 2019-12-12T15:00:42: PM2 log: pid=4943 msg=process killed /home/pi/.pm2/logs/mm-error.log last 100 lines: 0|mm | [5004:1212/145553.006275:FATAL:memory.cc(22)] Out of memory. size=96641024 /home/pi/.pm2/logs/mm-out.log last 100 lines: 0|mm | No helper found for module: weatherforecast. 0|mm | All module helpers loaded. 0|mm | Starting server on port 8080 ... 0|mm | Server started ... 0|mm | Connecting socket for: MMM-ImagesPhotos 0|mm | Starting node helper for: MMM-ImagesPhotos 0|mm | Connecting socket for: updatenotification 0|mm | Connecting socket for: calendar 0|mm | Starting node helper for: calendar 0|mm | Sockets connected & modules started ... 0|mm | Launching application. 0|mm | Create new calendar fetcher for url: https://calendar.google.com/calendar/ical/EDITED%40gmail.com/EDITED/basic.ics - Interval: 900000 0|mm | 0|mm | > magicmirror@2.9.0 start /home/pi/MagicMirror 0|mm | > sh run-start.sh 0|mm | 0|mm | Starting MagicMirror: v2.9.0 0|mm | Loading config ... 0|mm | Loading module helpers ... 0|mm | Initializing new module helper ... 0|mm | Module helper loaded: MMM-ImagesPhotos 0|mm | No helper found for module: alert. 0|mm | Initializing new module helper ... 0|mm | Module helper loaded: updatenotification 0|mm | No helper found for module: clock. 0|mm | Initializing new module helper ... 0|mm | Module helper loaded: calendar 0|mm | No helper found for module: currentweather. 0|mm | No helper found for module: weatherforecast. 0|mm | All module helpers loaded. 0|mm | Starting server on port 8080 ... 0|mm | Server started ... 0|mm | Connecting socket for: MMM-ImagesPhotos 0|mm | Starting node helper for: MMM-ImagesPhotos 0|mm | Connecting socket for: updatenotification 0|mm | Connecting socket for: calendar 0|mm | Starting node helper for: calendar 0|mm | Sockets connected & modules started ... 0|mm | Launching application. 0|mm | Create new calendar fetcher for url: https://calendar.google.com/calendar/ical/EDITED%40gmail.com/EDITED/basic.ics - Interval: 900000 0|mm | 0|mm | > magicmirror@2.9.0 start /home/pi/MagicMirror 0|mm | > sh run-start.sh 0|mm | 0|mm | Starting MagicMirror: v2.9.0 0|mm | Loading config ... 0|mm | Loading module helpers ... 0|mm | Initializing new module helper ... 0|mm | Module helper loaded: MMM-ImagesPhotos 0|mm | No helper found for module: alert. 0|mm | Initializing new module helper ... 0|mm | Module helper loaded: updatenotification 0|mm | No helper found for module: clock. 0|mm | Initializing new module helper ... 0|mm | Module helper loaded: calendar 0|mm | No helper found for module: currentweather. 0|mm | No helper found for module: weatherforecast. 0|mm | All module helpers loaded. 0|mm | Starting server on port 8080 ... 0|mm | Server started ... 0|mm | Connecting socket for: MMM-ImagesPhotos 0|mm | Starting node helper for: MMM-ImagesPhotos 0|mm | Connecting socket for: updatenotification 0|mm | Connecting socket for: calendar 0|mm | Starting node helper for: calendar 0|mm | Sockets connected & modules started ... 0|mm | Launching application. 0|mm | Create new calendar fetcher for url: https://calendar.google.com/calendar/ical/EDITED%40gmail.com/EDITED/basic.ics - Interval: 900000 0|mm | 0|mm | > magicmirror@2.9.0 start /home/pi/MagicMirror 0|mm | > sh run-start.sh 0|mm | 0|mm | Starting MagicMirror: v2.9.0 0|mm | Loading config ... 0|mm | Loading module helpers ... 0|mm | Initializing new module helper ... 0|mm | Module helper loaded: MMM-ImagesPhotos 0|mm | No helper found for module: alert. 0|mm | Initializing new module helper ... 0|mm | Module helper loaded: updatenotification 0|mm | No helper found for module: clock. 0|mm | Initializing new module helper ... 0|mm | Module helper loaded: calendar 0|mm | No helper found for module: currentweather. 0|mm | No helper found for module: weatherforecast. 0|mm | All module helpers loaded. 0|mm | Starting server on port 8080 ... 0|mm | Server started ... 0|mm | Connecting socket for: MMM-ImagesPhotos 0|mm | Starting node helper for: MMM-ImagesPhotos 0|mm | Connecting socket for: updatenotification 0|mm | Connecting socket for: calendar 0|mm | Starting node helper for: calendar 0|mm | Sockets connected & modules started ... 0|mm | Launching application. 0|mm | Create new calendar fetcher for url: https://calendar.google.com/calendar/ical/EDITED%40gmail.com/EDITED/basic.ics - Interval: 900000 0|mm | Shutting down server... 0|mm | Stopping module helper: MMM-ImagesPhotos 0|mm | Stopping module helper: updatenotification 0|mm | Stopping module helper: calendar
-
@ember1205 you need to use position:‘fullscreen’ for my sizing to work.
there is a space around the picture, its NOT ‘fullscreen’, its the fullscreen section of the mirror ui.
i adjust the pic to fix exactly with the same relative dimensions as actual
I do not fill (cover) the screen
and do not contain (the image)
whatever it takes to get 100% of the image, no clipping, onto the screen.
they will NEVER fill the screen, the measurements are different.
the grey is the background color in the config to use to fill the empty space around the pic
backgroundColor: "#808080", // the default is #000 , ie, black
the pics are centered on the screen
-
@ember1205 if you don’t use position:“fullscreen” then the image will be clipped or shrunk based on the area u pick, which is less that 100% of the display space.
I wanted a full background image without clipping or stretching
I checked a few thousand images to insure the right calculations.
-
I tried with the config you provided:
{ module: "MMM-ImagesPhotos", position: "fullscreen", config: { opacity: 0.9, animationSpeed: 0, updateInterval: 30000, // how often to change pic backgroundColor: "#808080", // color around pic (if u want something other than black) }, },
This results in the photos running off the edges of the screen and not being able to view the entire image. I have also tried using the config on the project page, and adding the maxHeight and maxWidth variables as well.
Just for the heck of it, I even tried using the “fullscreen_below” positioning area that the other module uses.
The photos always run off the edge of the screen. And by a lot.
As of right now, these are all photos that were shot on a 24MP DSLR and they are being displayed on a 1080 TV. There is definitely more pixels in the photo and the device needs to ‘resize’ them down to fit the screen (which it does not appear to be doing).
While you don’t ‘contain’ the images, I do recall that was an option being used in the other module that would ensure they did not overrun the screen edges. Is there a config option for yours that would enable it?
-
@ember1205 no. Contain…etc.
My pics are from a Nikon D3300 24mp I don’t see anything strange.
U set fullscreen. I add .above
I just checked 50 pics, and they display exactly the same as shown in Windows Media viewer and explorer.
I just installed the module on two systems. Pi3 and pi4. Cut/pasted the config I posted and both systems present the same. One at 1920x1080, and one at 3840x2160. I get the screen size dynamically. Nothing is hard coded
-
@ember1205 the pics above are without any mods… installed MM, install the module, linked to my server and started MM… they reach to the top of the window or the side (only a few), never both
no border around. not used space is filled with the background color.if u accidentally zoomed in the browser using ctrl-+, it sadly remembers across instances
ctrl-minus sign will zoom out again
-
I’ll definitely give it a try. But… If it were a browser zoom issue, wouldn’t that prevent the other module from displaying them properly as well?
-
@ember1205 yes…
-
I just added a little bit of debug messaging…
go to the MMM-ImagesPhotos folder, and do a git pull
then edit the config and add
debug:true,then restart MM
using keyboard, hit ctrl-shift-i, a window will open on right side, select the tab labeled console, and type
image into the field labeled filter…now u will see messages from the module as it loads images and gets the image actual size, and sets the location and dimension of the image to be displayed… like this sizes are width/height
top is the top left corner (all locations are relative to the top left corner of the screen, 0,0 is the top left… so 0:72 is all the way left and 72 pixels down. (note its centered, so height+2*offset = max,.MMM-ImagesPhotos.js:237 image setting size to 3023:2015
MMM-ImagesPhotos.js:238 image setting top to 0:72
2015+72*2=2159 (of 2160) in this caseMM-ImagesPhotos.js:222 image loaded=http://localhost:8080/MMM-ImagesPhotos/photo/DSC_0491.JPG size=4000:6000 MMM-ImagesPhotos.js:237 image setting size to 1440:2160 MMM-ImagesPhotos.js:238 image setting top to 791:0 MMM-ImagesPhotos.js:222 image loaded=http://localhost:8080/MMM-ImagesPhotos/photo/PICT0097.JPG size=5472:3648 MMM-ImagesPhotos.js:237 image setting size to 3023:2015 MMM-ImagesPhotos.js:238 image setting top to 0:72 MMM-ImagesPhotos.js:222 image loaded=http://localhost:8080/MMM-ImagesPhotos/photo/DSC_0027.JPG size=6000:4000 MMM-ImagesPhotos.js:237 image setting size to 3023:2015 MMM-ImagesPhotos.js:238 image setting top to 0:72 MMM-ImagesPhotos.js:222 image loaded=http://localhost:8080/MMM-ImagesPhotos/photo/DSC_0476.JPG size=6000:4000 MMM-ImagesPhotos.js:237 image setting size to 3023:2015 MMM-ImagesPhotos.js:238 image setting top to 0:72 MMM-ImagesPhotos.js:222 image loaded=http://localhost:8080/MMM-ImagesPhotos/photo/DSC_0042.JPG size=6000:4000 MMM-ImagesPhotos.js:237 image setting size to 3023:2015 MMM-ImagesPhotos.js:238 image setting top to 0:72 MMM-ImagesPhotos.js:222 image loaded=http://localhost:8080/MMM-ImagesPhotos/photo/DSC_0198.JPG size=6000:4000 MMM-ImagesPhotos.js:237 image setting size to 3023:2015 MMM-ImagesPhotos.js:238 image setting top to 0:72 MMM-ImagesPhotos.js:222 image loaded=http://localhost:8080/MMM-ImagesPhotos/photo/DSC_0720.JPG size=4496:3000 MMM-ImagesPhotos.js:237 image setting size to 3023:2017 MMM-ImagesPhotos.js:238 image setting top to 0:71 MMM-ImagesPhotos.js:222 image loaded=http://localhost:8080/MMM-ImagesPhotos/photo/DSC_0697.JPG size=3000:4496 MMM-ImagesPhotos.js:237 image setting size to 1441:2160 MMM-ImagesPhotos.js:238 image setting top to 791:0 MMM-ImagesPhotos.js:222 image loaded=http://localhost:8080/MMM-ImagesPhotos/photo/DSC_0319.JPG size=4000:6000 MMM-ImagesPhotos.js:237 image setting size to 1440:2160 MMM-ImagesPhotos.js:238 image setting top to 791:0