Spoolman Integration

Hi guys!

You’re are a maker and want to have an complete overview of your 3d printing filament spools? If you already use Spoolman my integration would be pretty useful for you (hopefully :D)

This is my fist HA integration ever, so please don’t be mad.

:sparkles: Features

  • Locations in Spoolman are created as devices
  • Spools are added to the devices
  • Monitoring of filament consumption (used and remaining length/weight)
  • Configurable thresholds for info, warning and critical states. This is useful to trigger notifications in HomeAssistant within an automation (see the automation example)
  • Enable/disabled archived spools
  • Archived spools are grouped into one Archived device
  • Downloadable via HACS custom repos

Let me know if its useful for you or not!

4 Likes

This is awesome! I’ve seen the recent Klipper updates adding support and got more interested. Since I have multiple printers, I’m going to look at the possibility of installing Spoolman itself on my HA Yellow then point the printers at it, and now your integration would complete the circle.

1 Like

Thank you for the kind word. Hope you will benefit from it. If you have some feedback, just leave a github issue or a post here.

Thanks @Disane87 for this.

I think that it will need some time until Spoolman is popular enough and then your Integration will also become more attention.

Currently your documentation is somewhat “short” :wink: so I’m asking here directly:

The Spoolman services have to run on each 3D printer still right?
This is not also a server for it, but it communicates with those “servers” and receives information about the spools - so far correct?

Does this also synchronize the spools somehow across these spoolman servers?

My main problem with using spoolman is, that there is one “always on” host needed that has the information about each spool.
But as I dont have that host, every 3d printer has this hosted by itself and interchanging spools between different printers breaks the usability.

Maybe you can tell me more about your integration :slight_smile:

Thnk you for the post. Let me dive into your questions and clarify some misuderstandings.

I don’t think my docs are “short” let me explain why according to your further questions.

No, this is not correct. Spoolman runs on one server/host not on every 3d printer you have. Running spoolman on a raspberry pi or something else is totally fine. Even the energy consumption is totall ok. If you are hard enough you can even automate the start of that particular host (the pi) and start it when one of your printers came online.

If you use klipper, against that spoolman instance, all consumptions of spools will be notified to the spoolman server. Therefore you have correct data everytime. It doesn’t matter if you use one or 10 printers. If they report their consumption to spoolman, spoolman is the soruce of truth.

That shouldn’t be a problem since you can run spoolman on every host that runs i.e. docker like a raspberry pi locally. If you dont want to invest in a raspberry pi, you can buy a really good vps which can run nodejs stuff (like uberspace or something else) to host spoolman on.

Spoolman is a great option to have a glance over your spools and filaments.

In your particular case, I would recommend you to choose one 24/7 host and give spoolman and my integration a try. I would bet you won’t regret it :slight_smile:

Actually I’m writing a detailed artivle about spoolman and my integration on my blog. That should be online soon.

Hope I correctly sorted out your questions :slight_smile: If not, just hit me up.

Yeah… you had a different setup in mind, so my questions were going to a different direction.

To clarify this a bit:
Everyone I know with a 3D printer has a mainboard and electronics in this device (obviously).
Nowadays even an SoC like Raspberry included to that 3D printer becomes more commin to run klipper on it.

But none with a 3D printer that I know, has a home server (also no home assistant).

So hosting the Spoolman server on each printer is easy, but is like I said above.
You need one additional device like a raspberry as a server.
This adds cost (initial and running) and ist not that easy at the beginning.

The interest in using Home Assistant is quite high from my 3D printer friends, so something like HassOS would be an advantage if your Integration could synchronize between all those Spoolman servers (3D printers).

But I understand now, that your integration is showing the spools in home assistant and you can use notifications and automations with this.

This is why I said your documentation is somewhat short, because I did not understand what this integration is capable of and what not :slight_smile:

So thanks for anwering and clarify this. This helped a lot and I will give it a shot even it doesnt do, what I hoped for :smiley:

1 Like

Here is the me mentioned blog post about spoolman and this integration :slight_smile:

THANK YOU for developing this! I <3 Spoolman and have Home Assistant already integrated with most of my printers (Vorons. Rat Rigs, QIDI etc). I am going to install this now. Please let me know if there is anything I can test or try out for you.

1 Like

First obstacle: it seems to require https. It will not connect with just http no matter how I specify the URL, including specifying http:// . I will add SSL but I know most Spoolman users do not use SSL.

Thank you for the kind words @markewert!

It seems there is something wrong with your environment. In my testing env (HA running in a docker container on my local machine without ssl) and spoolman with SSL (in a docker container on my local server) works perfectly.

Would be nice of you activate the debug log in HA for the integration and file an issue with the exact exception in the github repo:
Disane87/spoolman-homeassistant: Unofficial spoolman home assistant integration (github.com)

Just use it and if you find something thats broken or doesn’t fit your needs or you have some suggestions for improvements, please let me now on github :slight_smile:

Thank you in advance!

I’m on it! I will turn on debugging and get you the logs if I see anything. Just noticed you are using it with Docker without SSL too. Odd. I will investigate. Thanks for your help!

I figured out a workaround. If I use the IP, it connects fine. If I used the DNS name it fails. I am running Home Assistant OS so it is quite possible it cannot lookup the local DNS name. But I am fine connecting via IP and am up and running! :slight_smile:

1 Like

Thank you for the feedback! You can even test this by connecting to the container via interactive bash and try a simple pint to the spoolman instance via dns and/or by ip.

I’ve used your issue to create a FAQ entry on the repo :slight_smile:
FAQ · Disane87/spoolman-homeassistant Wiki (github.com)

This is great! just as a follow up, this is only able to read the values correct? this is currently not able to input a new value? I was thinking of using an ESP32 to create a scale to measure the spool on HA then ideally you could update the weight on print completion signal, but sounds like that is not possible?

Thank you for the input! Yeah you’re right. The integration is actually not able to do any writes and I don’t know if I should support this.

But spoolman itself has an API which you can use for this I guess.

Thats a Feature i would use… ESPHome with RFID Reader and Tags on the Spools. This way it would be possible to Track all Printers and all Filaments at any time. Right now there is a rfid reader for klipper taht works like that, but you cant track other Printers that dont support that.

1 Like

Thank you! As I know there are people around spoolman that already had implemented this as this feature should be a core feature of spoolman itself and not the HA integration :slight_smile:

Stupid question… I cannot for the life of me get any URL to work as a host. What is the host, and is there a port other than 8123 required? I appreciate any help. It looks like a fantastic integration!

Thank you so much

You only need the url of your spoolman instance. Wether it’s available via IP or domain name depends on your setup.

If your spoolman can be reached via https://spoolman.mydomain.com than you have to use this.

Hope that helps :slight_smile:

Port 8123 is the default HomeAssistant port and has nothing to do with this integration.