MikeGawi/ePiframe

Local mode [feature request]

spn91 opened this issue · 9 comments

spn91 commented

Hi, first I want to thank you for this great project :) I modified it a bit and now use it with a waveshare 5.65 inch 7 color eink display.

What I miss is the possibility to use local files. This would be a great addition, because with a local mode and rclone (https://rclone.org/), nearly every cloud storage could be used with ePiframe 💯

What do you think? Would it be possible for you to implement this?

This is great! Very good idea!
Yes, no problem, I'll plan that on January 2022 as a main task for me - there are still some tasks left for this year. Will keep You updated and thanks for the hint!

spn91 commented

Great to hear that you are going to implement that feature!

Yep, almost done, just started testing phase.

Will be merged and released in v1.1.0

Thanks for this great idea! That is a huge improvement for this project.

I had an idea to embed handling more providers with ePiframe (i.e. Flickr, Instagram, etc) but I was scarred that I would need to keep a track on the API changes of all the providers and their code. Local mode is the best solution for that because with 3rd party software like Rclone or dl-gallery You can sync to almost all image providing hosts.

You can use Local source as the only source of Your photos (that will work especially with the offline devices) and/or with existing Google Photos . So whenever Your network is down You'll have photos on Your frame.

Also all the options for Google Photos are working with the local ones - sorting by creation date (asceding or descending), interval multiplication per photo with a photo comment, random photo from the list. ePiframe just treats all the photos from Google Photos and local source as one. Check the documentation

And local photos recognition can be done on the top folder or recursively in subfolders, by extension, case insensitive.

Thank You!

Ditto comment by @spn91... this is a great project! I started out creating a new photoframe for my elderly father based on a Pi Zero 2W (rather than try to recreate the photoframe I created for home years ago that depends on NFS folder on my NAS). This is good enough that I am now considering replacing my own DIY photoframe running on a Pi3.

However, I would rather use the local storage feature and handle caching all Google Photos photos from an album locally rather than using your Google Photos source. One possible advantage I can see is being able to only do background processing when photos have been synced locally (which will be infrequent) rather than with every frame change. What I haven't quite figured out from your docs/code though is whether background processing happens on every frame refresh for local storage photos. I see in config that there is a separate folder for conversion processing so I am hoping that it happens up front, not on every frame refresh.

Thoughts?

Yes, the background processing happens on every frame refresh no matter what is the source of the photo (for local storage photos). Only one and current photo on every frame refresh to save resources of Pi.

Let me get your question straight, @NateEaton:

  • you want to sync all Google Photos on your NAS?
  • you want to preprocess all already synced photos and prepare them for the frame?

Both options are possible, so please let me know.

Thanks, @MikeGawi. The second option is what I had in mind, i.e., for the frame I'm building for Dad on a Pi0, having rclone download any new photos added to a specific shared album (periodically, perhaps just daily), storing them in a folder on the Pi0, but to have them pre-processed (when downloaded?) and stored in another local folder with that being the basis for the frame.

My preference for display is using the "photo" option so that instead of white or black bars top or bottom, having images overlaid on a blurred version of the same image to fill the frame. Obviously, ePiframe would work fine as it is but given how rarely new photos would be added, it just seems like doing the conversion processing every time an image is displayed is overkill for my use case. Note that I wouldn't be using any of the plugins so nothing on screen each time except the image itself.

BTW, on a loosely related topic, my home Pi-based photoframe that's run for years is based on an open-source solution called Pi3D. The authors published a set of demos, one of which is a photoframe. Although Pi3D obviously has a ton of features more advanced than needed for a photoframe, it basically does all the conversion processing ePiframe does dynamically when writing to the display (vs. writing to a file and then sending it to a display). Even with blurring the background, it runs fine on a Pi0 and I have it rotating to a new image ever minute. If you ever consider an alternative for image processing to ImageMagick, you might give it a look.

@NateEaton - moving your request to a new feature request as I see there are some missing parts on the side of ePiframe

About the Pi3D - thanks! I will check that solution. Thanks for the hint!

@NateEaton - please find the solution here