The OctoPrint-Plugin manages all spool informations and stores it in a database.
This plugin, as well as my other plugins were developed in my spare time. If you like it, I would be thankful about a cup of coffee :)
- OctoPrint 1.7.2: with Python 3.7.3
 
- Spool basic attributes, like name, color, material, vendor ...
 - "Used length" and "Remaining weight"
 - Additional notes
 - CSV Export of "Legacy FilamentManager-Database" and SpoolManager
 - CSV Import function
 - Labels
 
- Better error-feedback (more then just the "happy-path")
 - List all spools
 - Edit single spool
 - Copy single spool
 - Template spool
 - Sort spool table (Displayname, Last/First use, Remaining)
 - Force to select a spool before printing
 - Warn if not enough filament is present
 - Filter spool table
 - Table column visibility
 - Scan QR/Barcodes of a spool
 - Multi Tool support
 - Support for manual mid-print filament change
 
- External Database (IN PROGRESS)
 - PrintJobHistory integration PrintJobHistory-Plugin
 - Capture Spool-Image
 - ...more planing details could be found here
 
Install via the bundled Plugin Manager or manually using this URL:
https://github.com/OllisGit/OctoPrint-SpoolManager/releases/latest/download/master.zip
After installation, you can listen on three release channels (since 1.6.0). What does this mean: Each channel has its own release-version and each release has a different kind of functionality and stability.
- "Only Release": Only stable and tested versions will be shown in the software-update section of OctoPrint
 - "Release & Candidate": Beside the stable release, you can also see the "release-candidates", like '''1.7.0rc3'''. The rc's includde new functionalty/bugfixes and are already tested by the community.. so by YOU ;-)
 - "Release & Candidate & under Development": Beside stable and rc, you will be informed about development versions. A development version like '''1.8.0.dev5``` could include a new (experimental) feature/bugfixs, but it is not fully tested by the community
 
Changing between each release is done via the "Software Update section" in the settings.

Hint: "Easy-switching" is possible with OctoPrint-Version 1.8.0 (see OctoPrint/OctoPrint#4238). At the meantime you need to uninstall and install the version you like from the selected channel...or stay in one channel ;-)
see Release-Overview
Plugin sends the following custom events to the eventbus like this:
eventManager().fire(eventKey, eventPayload)
| EventKeys | 
|---|
| plugin_spoolmanager_spool_weight_updated_after_print | 
| plugin_spoolmanager_spool_selected | 
| plugin_spoolmanager_spool_deselected | 
| plugin_spoolmanager_spool_added | 
| plugin_spoolmanager_spool_deleted | 
HINT: In combination with the MQTT Plugin you can subscribe e.g. to this topic:
octoPrint/event/plugin_spoolmanager_spool_deselected
Payload
spool_added, spool_selected
 {
   'databaseId': 23,
   'toolId': 1,
   'spoolName':'Fancy Spool',
   'material':'ABS',
   'colorName':'dark red',
   'remainingWeight': 1234
 }spool_deselected
 {
   'toolId': 1
 }spool_deleted
 {
   'databaseId': 23
 }Other Plugins could listen to this events in there python-code like this:
eventmanager.subscribe("plugin_spoolmanager_spool_selected", self._myEventListener)
or use octoprint.plugin.EventHandlerPlugin with something like this:
def on_event(self, event, payload):
    if event == "plugin_spoolmanager_spool_selected":
        ## do something usefull
- 
Color-Picker: Pick-a-Color https://github.com/lauren/pick-a-color/
 - 
Color Helper: https://github.com/bgrins/TinyColor
 - 
Date-Picker:
bootstrap-datapicker https://github.com/uxsolutions/bootstrap-datepickerdatepicker https://github.com/fengyuanchen/datepicker - 
datetimepicker https://github.com/xdan/datetimepicker/tree/2.5.20 https://www.jqueryscript.net/time-clock/Clean-jQuery-Date-Time-Picker-Plugin-datetimepicker.html
 - 
Select/Labels select2 https://select2.org/
 - 
WYSIWYG - Editor quill https://quilljs.com/
 
docker-compose up
_
docker-compose down --volumes
_
docker-compose run postgres bash




