MikeGawi / ePiframe

ePiframe is an e-Paper (or HDMI, Composite display) Raspberry Pi Photo Frame with Google Photos and more
GNU General Public License v3.0
63 stars 10 forks source link

how to use it on normal raspberry screen? without epaper processing #89

Closed diegomaradona21 closed 5 months ago

diegomaradona21 commented 6 months ago

is it possible to use it on normal hdmi touchscreen and its not processed for epaper screens?

MikeGawi commented 6 months ago

Yes, of course you can. Just check how to set up ePiframe for HDMI display and let me know if you need any assistance.

diegomaradona21 commented 6 months ago

yes that works thanks!. app takes pictures from albums in google photos, is it possible to take photos that do not belong to any album? or blacklist an album?

MikeGawi commented 6 months ago

You can specify album names with album_names setting in config.cfg file (can be multiple, comma separated). Unfortunately there's no album blacklisting.

As for randomization check randomize setting in config.

diegomaradona21 commented 6 months ago

looks like its working. i created albums, defined in config and it seemed to working. but now i get an error - quota exceeded. is there a limit for google api?

diegomaradona21 commented 6 months ago

the error says that it limits to 10 000 requests per day, i have refresh photo set after 5 mins so it should not exceed...

MikeGawi commented 6 months ago

Yep, it should not exceed. I would wait one day and try as the counter resets every day. If this will happen again please share logs and I will check what's happening.

diegomaradona21 commented 6 months ago

ePiframe.log yep it happens every day.. i think it produces a lot of requests when getting albums data, i have around 7 albums, 2k, 1.5k photos each.

MikeGawi commented 6 months ago

Wow, I had no idea this can happen. Please play with this value to increase photos page size and decrease number of calls. Try with something crazy like 5000 first and let me know if this worked. In the meantime I will do some tests on my own. Thanks.

MikeGawi commented 6 months ago

Ahh, I checked and unfortunately Google Photos API allows page size 50 or less, so for now the only way to fix this issue is to create a separate album with less photos and point this one as the source for your frame. But I will think about some better solution as I had no idea this is possible.

diegomaradona21 commented 6 months ago

ok. let me know when there is any better solution. Thanks!

MikeGawi commented 6 months ago

The solution is to store downloaded Google Photos API data once a day and then load it when needed. As we have Pandas on board I can use a simple DataFrame dump/load mechanism (Feather format seems to be fast and enough for this). The data will be downloaded at first run every day and then for the rest it will be loaded and reused. The problem is that photos download URLs are expiring but in that case I can refresh it when something like this happens (with two retries). With that refresh requests number will be maximum 2% of the 10k requests limit, leaving the rest for the initial download.

This setting controls this behavior: https://github.com/MikeGawi/ePiframe/blob/master/config.cfg#L30

always = every frame refresh, once = once a day

Solution merged to master, please check it (from the dependencies pyarrow should be installed) and let me know if this works for you.

diegomaradona21 commented 6 months ago

i will try, for now i have troubles installing pyarrow on my raspberry pi

MikeGawi commented 6 months ago

Yep, you're right, it's a harsh process, so I made it easier - no dependencies, no struggle, just update the code and it should be fine now (switched to Pickle format instead of feather).

diegomaradona21 commented 6 months ago

cannot make it work now. i installed, activated with google json and get: 2024-01-09 09:50:20 : Error! [Errno 1] Operation not permitted: 'token.pickle' Traceback (most recent call last): File "/home/pi/epiframe10/./ePiframe.py", line 1108, in <module> EPiframe() File "/home/pi/epiframe10/./ePiframe.py", line 73, in __init__ self.process_flow() File "/home/pi/epiframe10/./ePiframe.py", line 85, in process_flow photos = self.get_from_sources() File "/home/pi/epiframe10/./ePiframe.py", line 396, in get_from_sources photos = self.get_google_photos() File "/home/pi/epiframe10/./ePiframe.py", line 439, in get_google_photos self.create_auth_manager() File "/home/pi/epiframe10/./ePiframe.py", line 500, in create_auth_manager self.auth_manager.manage_pickle( File "/home/pi/epiframe10/modules/oauthmanager.py", line 26, in manage_pickle os.chmod(pickle_file, 0o0666) PermissionError: [Errno 1] Operation not permitted: 'token.pickle'

diegomaradona21 commented 6 months ago

also i noticed, while installing that inky-master should be changed to inky-main

MikeGawi commented 5 months ago

cannot make it work now. i installed, activated with google json...

Try changing token.pickle file access rights/ownership (should be pi:pi).

also i noticed, while installing that inky-master should be changed to inky-main

They must have changed the default branch. Thanks for the hint - I will change this.

diegomaradona21 commented 5 months ago

almost worked. see the log in attachement. log.log

MikeGawi commented 5 months ago

Should be fixed now, please check and let me know.

diegomaradona21 commented 5 months ago

is it enough to overwrite changed files in mr or do i have to reinstall and activate again?

MikeGawi commented 5 months ago

it's fine to just overwrite changed files.

diegomaradona21 commented 5 months ago

working. i will test it for couple of days now

MikeGawi commented 5 months ago

Great to hear that, thank you

diegomaradona21 commented 5 months ago

it works. thanks

MikeGawi commented 5 months ago

Thanks for checking and providing a good feedback!