Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi-printer support #39

Open
KenLucke opened this issue Aug 25, 2020 · 24 comments
Open

Multi-printer support #39

KenLucke opened this issue Aug 25, 2020 · 24 comments
Labels

Comments

@KenLucke
Copy link

KenLucke commented Aug 25, 2020

As with every other "filament manager" plugin, this leaves those of us with several printers between which we swap rolls of filament out in the cold. If I read this correctly, this only manages spools on a single printer. I have ~80+ different rolls of filament (just the currently open ones) that I use interchangeably between 4 different printers (with plans for two more).

Please don't suggest that I export and import .csv files every time I swap a roll in or out. What a hassle.

Why cannot it be that a single database be used, on the computer that is running the browser(s) for the OctoPrint instance? Specify a path to where the database would be stored on the local computer (not the Pi) and have all OctoPrint instances access that one database if desired. Then, it could even be stored in a Dropbox or GoogleDrive [::gag::] folder which could be accessed from any computer authorized to access that folder. Yes, you'd have to have Busy/Locked/Unlocked flags on the file so that the database could not be changed while another instance was accessing it for a write, but that's just standard programming procedure.

Why can this not be done? I've begged the authors of other filament management systems to do it, and no one ever does.

@mrpegman
Copy link

Filament Manager does allow you to configure a central database to manage your spools. It was a bit of a challenge to set up with PostgreSQL. I've got 3 printers and it works pretty well once it's running. The downside is that Filament Manager isn't being updated anymore. I was excited to see this new plugin for managing spools pop up. I'm waiting for the central database feature for this one. It would be worth $ to me.

@Jbloomer92
Copy link

I would love this feature, have 3 printers myself.

@apresa
Copy link

apresa commented Aug 25, 2020

+1
support for multiple printers it's a must for serious makers

@Doprintityourself
Copy link

+1
As I have tonnes of spools and 10+ printers attached to octopi I would really appreciate to have it running on a database on one octopi that it is accessable to any other octopi instances in the network.
Thanks in advance
appreciate your work!

@OllisGit
Copy link
Owner

Hi @KenLucke!

Why can this not be done?

I don't know, who said that this is not possible ;-) Of course, all your mentioned features could be possible!

Currently I am working on two major tasks: 1) integration with PrintJobHistory and 2) externalise the Database.
Number two is also needed in PrintJobHistory, but more important for SpoolManager (I know). It also include the feature to handle multiple OP-connections.
See Backlog: https://github.com/OllisGit/OctoPrint-SpoolManager/projects/1

Kind of concept could be found here: https://github.com/OllisGit/OctoPrint-PrintJobHistory/wiki/Roadmap-to-an-external-Database
So, I want to implement a Database-Layer that I can use in both and future plugins.

...but that's just standard programming procedure

Yes, it is not "rocket science". Patterns/Concepts already exists.....but that doesn't mean that the implementation
is done by a wink of an eye.
For each feature (1. Dropbox, 2.GoogleDrive, 3.NAS-Folder, 4. Write-Lock, ....) you need to implement a lot of stuff:

  • multiple UIs
  • technical connection
  • multiple authentification methods
  • testcases
  • ...

And you make some kind of "contract" after you release a feature. You need to maintain it (issue management, enhancements, discussions)!

Just asking ""why this, why that" is easy ;-)

Btw. the plugin development is done in my spare-time (one man show) and I have a couple of popular plugins I need to maintain.
So I have to prioritize hard!

Again, I am working on that feature, but be patient!

I will update the progress in this issue. Maybe I will also do some pre-releases/devel-branches, so that you can test very early the database feature....I only have one printer and not a farm. I can only do "virtual" testing.
Testing by the community is highly appreciated.

@OllisGit OllisGit added status: inProgress I am working on it type: enhancement New feature or request labels Aug 26, 2020
@Doprintityourself
Copy link

one reasons why I invested in the filament manager was the integration into octofarm
Is there I chance to make it work with octofarm?
Or would this be or to adresse to notExpected yet?

@Doprintityourself
Copy link

By the way : Thank you for doing that at all and respect that you do it in spare time,

Appreciate your WORK!

@OllisGit
Copy link
Owner

Hi @Doprintityourself,
thanks!

Regaring Octofarm: I never used OctoFarm and I have no idea how the integration with FilamentManager is done.
Maybe:

  • Octofarm just connect to the external db with the "FilamentManager-Scheme"
    or
  • Octofarm is using a REST-API to collect the values

In both cases Octofarm needs be enhanced to communication with SpoolManager as well.
Maybe you can raise the question in the Octofarm issue tracker.

@mrpegman
Copy link

I appreciate all the work that you're doing @OllisGit! I'm a programmer myself and I can understand where your coming from. The answer to "Can I?" is often yes, but the "How long?" is depends on a lot of variables. Keep up the good work!

@Doprintityourself
Copy link

Doprintityourself commented Aug 26, 2020 via email

@OllisGit
Copy link
Owner

FUN: Welcome to my real life:
"The Expert: Draw redlines with blue ink"
https://www.youtube.com/watch?v=47RI3V1z6pM

@dorfman2
Copy link

dorfman2 commented Aug 29, 2020

@OllisGit - I'm excited for this feature to be released, thank you for your hard work! I am a Software QA tester for a living these days, so if you need an Alpha tester, please don't hesitate to reach out. I'd write up detailed bug reports.

My use case is managing 4 OctoPi (more to come) instances for a Maker Space. This would allow us to track filament usage much better than before. We currently manually enter into a spreadsheet.

@NotExpectedYet
Copy link

NotExpectedYet commented Sep 16, 2020

Hi @Doprintityourself,
thanks!

Regaring Octofarm: I never used OctoFarm and I have no idea how the integration with FilamentManager is done.
Maybe:

  • Octofarm just connect to the external db with the "FilamentManager-Scheme"
    or
  • Octofarm is using a REST-API to collect the values

In both cases Octofarm needs be enhanced to communication with SpoolManager as well.
Maybe you can raise the question in the Octofarm issue tracker.

Just to chime in for OctoFarm, I use the API that's revealed by FilamentManager and basically do a global call to the first online printer to sync the database with OctoFarms. Then any filament command I replicate on OctoFarm, and the specific OctoPrint instance with an API call.

For OctoFarm to support this I would need API endpoints and possibly the database you have already planned.

Personally the technical debt of supporting two filament manager plugins would be too much as I too am a one man band but I'm happy to try and work out some form of collaboration if it's beneficial to us both and the users.

I agree with your plan to eventually migrate Filament Manager feature set here, and maybe the database (ie OctoFarm just linking to yours) could be a decent avenue to go down.

@OllisGit
Copy link
Owner

Just for your information: I made some progress implementing the external database connection:

https://github.com/OllisGit/OctoPrint-SpoolManager/tree/feature/externalDatabase

https://github.com/OllisGit/OctoPrint-SpoolManager/wiki/Roadmap-to-an-external-Database

The core setup is done, but there is a lot more to do. Don't use this version in production!
This version only includes theses features:

  • connect to postgres db (mysql driver is missing, need to find the right one)
  • detects scheme version
  • create new postgres database
  • stores/load spool values
  • ..and a lot of issues und hickups ;-)

@KenLucke
Copy link
Author

Good to see progress... often, developers are open to begin with, then things just die. Thank you for your work.

@moong8te
Copy link

Pretty happy to have found this discussion after already messaging Olli about this.

When I felt the need to manage my spools I had a quick look at "Filament and Spool Manager". I personally like "Spool Manager" better. I can access it from the first screen and it gives me much more additional information.

After buying a second printer I do a lot of copy and paste lately.

Even more so after I wanted to have the Print Job History running which tells you to install all those additional plug-ins like "Filament Manager".

Not being sure if one of the filament managers might replace the other I started out populating both of them before every print. So now I have twice the manual work :-D

Database integration would be so nice.
In my case I have one for each printer as they are apart from each other.
This would mean I would need to turn them both on if the second printer wants to access the DB on the "masters' printers Pi.

Maybe that is the reason why Olli is looking into a cloud solution but as he pointed out there are so many services out there that one could imagine users would be quick to ask that their favorite cloud needs to be implemented as well.

In any case I am pretty happy about this thread. Looking forward to any kind of synchronization solution for "Spool Manager".

An once Spool Manager can be used in conjunction with "Print Job History" I will be super happy.

@ldiegos
Copy link

ldiegos commented Jul 27, 2021

Personally the technical debt of supporting two filament manager plugins would be too much as I too am a one man band but I'm happy to try and work out some form of collaboration if it's beneficial to us both and the users.

@NotExpectedYet In my opinión, if Spools Manager starts to communicate with octofarm, and starts using an external database(postgreSQL if you ask me) the old and discontinued Filament Manager could be uninstall from the octoprint instances.

So you don't need to maintain(improve) both API comms.

@OllisGit could mark the filament manager as discontinued given the chance to install the spools manager, he has the ability to do it since he maintain both.

Kind regards,

@speedysk1
Copy link

Any updates on this? I'm in the same boat and it would be nice. I do realize you all work on this in your spare time. Thanks for your efforts! The plugin is awesome!

@davidzwa
Copy link

davidzwa commented Nov 3, 2021

Hey guys, I just wanted to add something to the discussion. I've been working on FDM Monster (https://github.com/fdm-monster/fdm-monster). Currently working on a totally new filament management feature and I will take SpoolManager into account as a primary source of filament tracking, although it seems very beneficial to not add an external database as FDM Monster is already equipped with it.

Instead I'm leaning towards pushing the data through the connector plugin
https://github.com/fdm-monster/fdm-connector

Let me know if this is something you'd like to see! It might require some back and forth for the 2 plugins to have a smooth operation, so that's why I thought to post here.

@RobeeeJay
Copy link

I'm wondering if there has been any progress on support for an external database? I type this as I sit and watch my filament rolls go slowly out of sync across two Octoprint installations. 😭 (Thank you for your plugin!)

@murray484
Copy link

Any updates on external databases? I'm currently setting up Filament Manager because I need the shared database but a lot of the features I'd like to use are marked as "wontfix" on Filament Manager because they're already in Spool Manager, which I can't use.

@ldiegos
Copy link

ldiegos commented Oct 15, 2022

Hi there @OllisGit
How is the external database going on?

@BalooDK
Copy link

BalooDK commented Oct 15, 2022

Hi there @OllisGit
How is the external database going on?

I don’t think anything is going on with this plug-in. It’s dead

@mtinman
Copy link

mtinman commented Jan 7, 2024

Anyone here know of anything current (Jan. 2024) regarding this? Thanks in advance for reply! I think this is a GREAT idea, and would be VERY much appreciated by us makers with multiple printers/spool assets...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests