Arksine / moonraker

Web API Server for Klipper
https://moonraker.readthedocs.io
GNU General Public License v3.0
1.08k stars 414 forks source link

Merge with timelapse plugin fork #103

Closed cinadr closed 3 years ago

cinadr commented 3 years ago

Hi!

Is there any chance to merge this into master? This fork contains timelapse plugin which is a major feature.

Thanks.

Arksine commented 3 years ago

I'm going to go ahead and close this, as we need to wait for the timelapse dev to decide when he wants to merge.

FrYakaTKoP commented 3 years ago

@cinadr the plugin works, but without frontend implementation it's not pleasant to use (need to download the videos via external app etc.)

The PR is not far away, i just like to revisit the code, clean it up a notch and complete the docs.

best timeframe i can give is soon™

-FrY

cinadr commented 3 years ago

Thank you for your update. I'm patiently waiting to test this. Hopefully web frontend developers come up with some download solution to take advantage of this plugin soon.

FrYakaTKoP commented 3 years ago

@cinadr you actually can test/use it already (with said limitation)

Let me know if you got problems. feedback is also very much appreciated.

Don't worry atleast one frontend dev is onto it ;)

ayufan commented 3 years ago

@FrYakaTKoP

I think the lack of frontend is usually not a problem as for the first iteration :) Someone would contribute frontend next!

meteyou commented 3 years ago

@ayufan i am currently testing if everything is supported for a web interface. the first implementation worked but was not usable for the user via the webinterface.

cinadr commented 3 years ago

Hi @FrYakaTKoP!

I managed to use this without braking the update funcion only by downloading and compiling the plugin inside moonraker plugin folder. And it is working well so far. An option to specify folder paths would be nice as my /tmp folder is right now resides on a RAM disk for sparing my sd-card and it fills quickly. Thank you.

FrYakaTKoP commented 3 years ago

@cinadr interesting i was used to believe /tmp lives in tmpfs (RAM) anyways, strange that raspbian (rpi OS) does different, may because of the little RAM on some rpis.

i just pushed configurable snapshot directory ;) https://github.com/FrYakaTKoP/moonraker/commit/6eed16733f5995c5a915c55c21c4c60343a0bffb

moebis commented 3 years ago

@FrYakaTKoP is there an ETA for when time-lapse feature will be available. I'm almost considering going back to Octoprint because I miss it so much. Well, it is only a sd swap away, I suppose I can just swap cards when I want to do a time-lapse.

FrYakaTKoP commented 3 years ago

there is no ETA when it get merged to the main branch, but you can use it as is. Just copy the python script to your moonraker install and set it up like documented and it should work (didn't tested with the last couple commits, but alot of other people use it this way and i didn't hear from anyone it breaked, if so i will try to fixit). Also you can exclude the timelapse.py from the update manager to preserve update functionality of the main branch (obviously excluding updates to timelapse.py).

The merge will hapen after the frontend guys had time to implement it properly, but they have other (far more important) priorities. Also i'm short on time right now too, so i can't keep my fork uptodate (or implement more features to the plugin).

matthewlloyd commented 3 years ago

Can you please merge this without frontend support? It's still very useful even without a frontend. A lot of people would find this useful, but don't know about this issue and would never stumble upon it. It's so easy to configure, it takes literally 30 seconds to set up. It's trivial to download and view the videos with an SCP client (e.g. WinSCP). A frontend would be nice but it's not essential.

ayufan commented 3 years ago

I posted this design change to unify camera support and describe a way to integrate post-print snapshot and timelapse: https://github.com/Arksine/moonraker/issues/178.

Maybe this would make sense :)

schnibbi commented 3 years ago

I tried to go with manual installation as mentioned in the docs. Unfortunately i get a moonraker error saysing there is a error in the timeplase section. Maybe because Mainsail and Moonraker just switched to V 2.0.0 ?

FrYakaTKoP commented 3 years ago

@schnibbi

i'm using uptodate moonraker and mainsail without a problem. Did you copy/install the timelapse.py?

just to make sure, connect to ssh and do following:

cd ~/moonraker/moonraker/components/
curl -O https://raw.githubusercontent.com/FrYakaTKoP/moonraker/dev-timelapse/moonraker/components/timelapse.py
sudo systemctl restart moonraker

That will download/update the script from my fork and restart moonraker. After that refresh your browser and check if there is still a error. If so please upload the your moonraker.log so i can analyze it.

schnibbi commented 3 years ago

Thanks i found that commands on discord top, you already discussed with another User. Strange Thing is it did wörk the first time than no more. I then Set everything up from scratch an now its working just fine.Thanks for that awesome Feature! You also mentioned you are open for other Features. Im Not quiet Sure if its possible but IT would be Nice to have more picture per Layer maybe like a percentual amount of gcode per layer so you can havo longer videos Von meinem/meiner Galaxy gesendet -------- Ursprüngliche Nachricht --------Von: FrY Sennberg @.> Datum: 29.08.21 23:43 (GMT+01:00) An: Arksine/moonraker @.> Cc: schnibbi @.>, Mention @.> Betreff: Re: [Arksine/moonraker] Merge with timelapse plugin fork (#103) @schnibbi i'm using uptodate moonraker and mainsail without a problem. Did you copy/install the timelapse.py? just to make sure, connect to ssh and do following: cd ~/moonraker/moonraker/components/ curl -O https://raw.githubusercontent.com/FrYakaTKoP/moonraker/dev-timelapse/moonraker/components/timelapse.py sudo systemctl restart moonraker

That will download/update the script from my fork and restart moonraker. After that refresh your browser and check if there is still a error. If so please upload the your moonraker.log so i can analyze it.

—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.

FrYakaTKoP commented 3 years ago

@schnibbi
you would need to add the macro into your slicer in mid of a layer where you want a snapshot to be taken, what i don't think is possible with most slicers. But you could add timebased frame grabbing described here: https://github.com/FrYakaTKoP/moonraker/blob/dev-timelapse/docs/configuration.md#timebased-frame-capture

this would capture a frame every x seconds

aeremichev commented 3 years ago

@schnibbi you would need to add the macro into your slicer in mid of a layer where you want a snapshot to be taken, what i don't think is possible with most slicers. But you could add timebased frame grabbing described here: https://github.com/FrYakaTKoP/moonraker/blob/dev-timelapse/docs/configuration.md#timebased-frame-capture

this would capture a frame every x seconds

Hey! Thanks for your work. I have a question. Does moonraker have a layer change event? Is it possible to make a snapshot of this event? How it is implemented in OctoPrint.

FrYakaTKoP commented 3 years ago

@aeremichev no Moonraker doesn't have such a event. Moonraker doesn't read the Gcode. Klipper does read the gcode directly, but detecting a "layer change" isn't easy, since change in Z could also be a "ZHop".

Octoprint does this with some trickery, it needles out zhops. I had used it as back when i was using octoprint and it works most of the time. That's no question but it's also not perfect. I had couple scenarios where it would not take a frame even it was a legit layer change.

To pull someting similar off, i would need to also add code to Klipper (afaik there is no such "layer change event" in klipper yet). I am more then happy to add, documentation how to configure, if someone add such a event to klipper. I would not force people to add something to there slicers, if i'm aware of such feature 😉. To be honest: i was lazy and said myself why try to do something that you know isn't a bulletproof solution, just to save people the "hassle" to add the Macro to there slicers. Also it would be not part of the plugin itself, i could look into it later if heavily requested.

TL;DR maybe there will something similar in future, but chances are high that it will never appear or will not be bulletproof (therefore not recommended)