I just got Klipper going on my Octoprint, and one thing about it I like is the "virtual SD card", which bypasses the Klipper to Octoprint to Control Card communication, which speeds things up. One thing about it that I don't like, though I understand it, is that I can't do a "Preheat". Either Octoprint ot Preheat Button gives an error that basically says it can't get the temperature from the SD card. It's too bad, because as it is, printing from the virtual SD card is faster again, and eliminates "stuttering".
I wonder, is there a way for your plugin to recognize that the SD card is actually a virtual one, and somehow grab the temperature out of it for a preheat?
Honestly, if the plugin were properly named like PreheatSupportForKlipperVirtualSD then you don't really need to test for anything. Just assume that this is what the consumer has in mind and run with it.
This plugin adds a preheat button to preheat the nozzle to the printing temperature of the selected gcode file.
I would assume that since you're not actually loading a gcode file into octoprint, but printing from an "sd card", be it real or virtual, then there's no way for the plugin to get the temperature. I'd say your question is probably impossible to do in the current state of how 3d printers interact with hosts with respect to SD card based printing (i.e. the host sees precisely nothing of that sd based gcode).
Gotcha. I realized a while after posting that I could do a workaround that comes close to the Preheat. I just made a macro in Klipper that preheats to reasonable PLA temperatures and when I print, it only has a short way to heat to the GCode-commanded temperatures. Thanks for the response..