I have my printer enclosed so I cannot easily see the spool to check how much filament is remaining - also lazy. After pondering a little bit I realized that it would be pretty simple to add a cheap load cell to the printer, put the spool on it when new then count backwards from 1000 grams to tell how much filament is left on the spool. A 5kg load cell with a HX711 amplifier board is under $10 on amazon. I looked around and didn't find anything already made. All the necessary libraries for python to utilize a HX711 are extant.
It should be pretty easy to write an Octoprint plugin to add spool weight monitoring. I would do it except for two things - I don't know python, and I don't want to learn python.
Here is where the project is at: the spool holder is designed and works fine to hold a spool of filament. I have been printing off of it for a few weeks. All that is needed is software to interface the load cell to octoprint. I am tossing this up here hopes that someone with the necessary python skills will be interested enough in this existing to write the software then we can put it together into a plug in.
The stl files and pictures of the first design are up on thingiverse:
It won't help you right now, but I intend on building my own plugin for this sometime in the next couple months. However if you already know how to program I would recommend just tinkering around with it yourself, pythons super easy to pick up especially if you already have other languages under your belt.
I have a Botfactory SV2 (circuit board printer) that I also intend on making a custom breakout board with so-as to minimize GPIO pin usage to conserve pins for other additional sensors (Color of currently loaded filament, humidity sensor, small LCD display, potentially motor drivers for performing filament color swaps). The aforementioned breakout board and associated plastic jigs would all be released open-source, naturally.