Qrome / printer-monitor

OctoPrint 3D Printer Monitor using Wemos D1 Mini ESP8266
MIT License
479 stars 164 forks source link

Progress bar does not match Octoprint #89

Closed Jeff-Haas closed 5 years ago

Jeff-Haas commented 5 years ago

Progress bar on Printer Monitor does not match the one shown in Octoprint.

Note I have PrintTimeGenius Plugin installed on Octoprint.

Printer Monitor progress bar

Qrome commented 5 years ago

Does print genius plugin change the percentage? The monitor displays the value from progress->completion value in the /api/job call. It matches my display value correctly.

I have a feeling your plugin has altered the values to a different completion estimate.

Jeff-Haas commented 5 years ago

I think you're right, there's something different about the way PrintTimeGenius reports the progress bar. Note that you are showing the same time remaining as Octoprint, which is using PrintTimeGenius, it's just how the progress bar is being reported.

Here is his explanation of his process: https://github.com/eyal0/OctoPrint-PrintTimeGenius/wiki/How-does-it-work%3F

What I'm seeing is that PrintTimeGenius does a much better job of reporting estimated completion times than the standard estimate.

I'm going to drop him a note and see if we can figure out what this is.

Jeff-Haas commented 5 years ago

I think I figured it out - you must be using the standard Octoprint estimate, instead of having access to the one from Print Time Genius. I watched a short print of about 23 minutes, and the regular Octoprint estimate was lagging behind the Print Time Genius estimate. But near the end of the print, the Octoprint estimate catches up to the actual amount of time remaining. This seems to be typical behavior for Octoprint.

eyal0 commented 5 years ago

@Qrome Yes, PTG does it in javascript: https://github.com/eyal0/OctoPrint-PrintTimeGenius/issues/137#issuecomment-506434934

https://github.com/eyal0/OctoPrint-PrintTimeGenius/commit/cd41885348e0a27005c73ba67d2af4fdce28dbdd

Qrome commented 5 years ago

Thanks for the details.

At this point there is no plan to try and read the progress data from the PrintTimeGenious plugin. Thanks.

eyal0 commented 5 years ago

Makes sense. What you could do, if you wanted, is to have the device divide the time spent from the total time reported by octoprint and report that instead of the percentage.

Qrome commented 5 years ago

Yeah, the problem is... the total time estimate is actually very inaccurate and changes dramatically especially at the beginning of the print. Thanks for the suggestions.

eyal0 commented 5 years ago

Yes, I know that the default print time estimate is very inaccurate. That's why people use Print Time Genius to get better estimates. The the graph at the bottom you can see how the default estimate moves around while the PTG estimate is very close to the actual time to print.

Maybe it could be an option to use print time instead of file size?

Qrome commented 5 years ago

Thanks, it might be possible to have it as an option, but currently the Printer Monitor only reads the data from the JSON response from the octoprint API -- does the plugin alter the data that is returned from the standard api?

eyal0 commented 5 years ago

Yes it does. The estimate total print time and the time to print come from OctoPrint and my plugin (PrintTimeGenius) is making a print time estimator that will replace the estimator that is in OctoPrint. The JSON response from OctoPrint will use the numbers that PTG has provided.

You can see in the image that the print time estimation on the device matches the one in the screen.