This is working as intended - there's no way for OctoPrint to know this information, since you are printing from the SD card of the printer rather than OctoPrint.
How should OctoPrint know when to pull?
OctoPrint could do it every 10 seconds? Every one second or less?
This gives additional load to receive stage of the printers MCU.
The other way could be, that the printer would send this information on layer change.
But Marlin/Prusa firmware does not support this feature.
That is one of the downsides of printing from SD card.
If you like to have it, you may pull a feature request on the Marlin and Prusa firmware githubs.
Wouldn't it be possible to add M118 custom messages at layer change inside the gcode, using the slicer, and have a plugin pick up those to update the current printing stats inside octoprint?
This is possible on regular marlin. I don't know if the prusa firmware offers M118 or an alternative...
According to this prusa knowledge base article M118 isn't supported by prusa firmware. M117 only works with LCD so not so sure octoprint could intercept those as they wouldn't be sent over serial...
One way to be sure would be to test both in octoprint's terminal and see what happens.
Yeah I know that, I was referring to whether prusa firmware actually supported the M118 gcode, and whether something was logged on the printer's serial when issuing M117...
Of course the simplest solution would be to start the print directly from octoprint to have those informations, but I'm sure @newtooctoprint has valid reasons to start a print from the SD card.
The printer knows at which height it is printing, although it doesn't know which layer it is printing... Those may not be correlated if layer height changes during print for example.
I still cannot get the issue posted in the following thread resolved. So I cannot print directly from Octoprint on my PC. I just use SD card and my Mac to to see a livestream of the printer during print. All my slicers are on the PC.