Giter VIP home page Giter VIP logo

octoprint-spoolmanager's Introduction

OctoPrint-SpoolManager

Version Released GitHub Releases (by Release)

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.

Support my Efforts

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 :)

More coffee, more code

Tested with:

  • OctoPrint 1.9.3: with Python 3.11.5

Included features

Basic attributes to be captured:

  • 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

UI features

  • 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

Planning / next features

  • External Database (IN PROGRESS)
  • PrintJobHistory integration PrintJobHistory-Plugin
  • Capture Spool-Image
  • ...more planing details could be found here

Screenshots

listSpools-tab selectSpools-sidebar selectSpools-dialog editSpool-dialog

scanSpool-dialog

Setup

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. release-channels

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 ;-)

Versions

see Release-Overview


Developer - Section

Events

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

Used UI-Tools


docker-compose up

_

docker-compose down --volumes

_

docker-compose run postgres bash

octoprint-spoolmanager's People

Contributors

ollisgit avatar webguyatwork avatar wyattnielsen avatar tizig avatar vibroaxe avatar codingcatgirl avatar marlosm avatar ralmn avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.