Native conky interface to octoprint

I have created a native interface in conky to talk to an OctoPrint server and display the data. You can check it out here. There was a previous solution that was implemented in javascript, and relied on on launching an instance of node.js to run a script and return each value. This implementation is written in c++, and integrated directly into conky. It also leverages conky's multi-threaded curl capabilities. This means that conky can make asynchronous, periodic queries to the server, and recycle the result for multiple fields. As such it won't hang if your OctoPrint server goes offline, and won't make unnecessary queries for data that was already delivered as part of a previous query. You can also connect to multiple servers, in case you have multiple printers. The multi-server setup does require generating a perfect JSON string in your conky config, but in theory you could monitor an entire print farm this way. I have also made a pull request to integrate this into the upstream conky source.

3 Likes

Very cool. Do you have any screenshots? Might give a better idea of what all is available to be able to do.

1 Like

This is a screenshot from a very verbose conky config pulling from a single printer. It's not very pretty, but it shows a fairly complete set of the data available. The horizontal bars are for the target and actual temperatures, so you can get a visual comparison when the printer is running. The graphs show temperature history data. Not visible in the picture, but they are color coded to be red when the temperature is high, and blue when the temperature is low. The scale of the graphs and bars can be customized to values sensible for your own printer hardware.

1 Like

This is my day to day config, which is much more concise and pulls data from both printers.
Screenshot from 2022-01-02 08-01-48

Of course, it's conky so you can lay it out and pretty it up however you want for your own theme.

1 Like

Trying to figure out the point since all that info is available directly on the Octoprint screen. And octoprint can be accessed remotely on the same network and with a simple plugin from anywhere.

I always have a detailed conky instance on my computers, so it makes sense to embed the information into my always on, always available data center. The other thing, and maybe I should have mentioned this earlier, is that conky can run in a console, without X11. I can attach a small TFT screen to my OctoPrint server and dump system + octoprint stats to the terminal via conky-cli, and save the resources normally consumed by X11/Wayland.

It's point is just the same as any other OctoPrint interface - same data, different place, different look. Like OctoDash on your touchscreen, or OctoApp on your phone. Or maybe the monitoring panel in Cura, the same data is also shown in OctoFarm if you run that.