Why can my printer display remaining time but OctoPrint can't? The Prusa i3 MK3 displays the remaining printing time right from the beginning.


  Image: 3:38 remaining after 0% printing




From about 8 prints until now, I would say that this time is quite reliable.

Octoprint, however, does not display the remaining time initially and is then far off.


  Image: Octoprint saying something like "too uncertain"





  Image: Octoprint says 8.5 hours remaining




Why doesn't Octoprint just take the remaining time from the printer and display that? Or can I change a setting so that it does?
Octoprint is a generic application that has to work with a rather wide variety of printers and printer firmwares. The time estimation that is shipped with Octoprint by default is a very basic method that doesn't rely on any specific printer features. This also makes it kind of useless in some cases, and not very accurate.

The estimate that the Prusa i3 Mk3 shows is not actually done by the printer, it is embedded in the GCode generated by Slic3r PE. There are M73 commands added that tell the printer how far along the print job is.

As for why Octoprint doesn't do this by default, the major reason is likely that this method only works for specific printers and slicers, and only works well if the slicer can actually do good estimates for a particular printer. This is the case for the Prusa because it supports this feature and the slicer is maintained by them and has enough information to make good estimates. But this is not the case for all printers.

The feature is also not entirely standardized as far as I understand, e.g. Prusa uses slightly different M73 commands to give estimates for normal and silent mode.

There are plugins that can read the M73 estimates, you could try that. I never tried them myself, this plugin seems to do what you want from a quick glance.