The OctoPrint-Plugin manages all spool informations and stores it in a database. Now includes the option to store to an external Postgres or MySQL database to share across multiple instances of OctoPrint.
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.9.3: with Python 3.11.5
- 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