Skip to main content

*Youtube - Spoolman

Hallo. Hier zeige wir euch, wie ihr den Service "Spoolman" installiert, um eure Filamentspulen mit Klipper zu verwalten.

Original Dokumentation

Link zum Spoolman Repo:
https://github.com/Donkie/Spoolman

Installation - Spoolman als Service (Standalone)

1. System Updaten

sudo apt-get update
sudo apt-get upgrade -y

2. Curl installieren

sudo apt-get install -y curl jq

3. Sourche URL festlegen:

source_url=$(curl -s https://api.github.com/repos/Donkie/Spoolman/releases/latest | jq -r '.assets[] | select(.name == "spoolman.zip").browser_download_url')

4.  Spoolman Repo downlload

curl -sSL $source_url -o temp.zip && unzip temp.zip -d ./Spoolman && rm temp.zip

5. Spoolman installieren

cd ./Spoolman
bash ./scripts/install_debian.sh

6. Aktueller Fix

sudo systemctl stop Spoolman.service
rm /home/biqu/.local/share/spoolman/spoolman.db
sudo systemctl start Spoolman.service

7. Prüfen ob spoolman läuft
http://<IP>:7912
Beispiel: http://192.168.1.10:7912

Spoolman standalone deinstallieren
sudo systemctl stop Spoolman.service
sudo systemctl disable Spoolman.service

image.png

sudo rm /etc/systemd/system/Spoolman.service
Installation mit Docker
Docker installieren
sudo apt update && sudo apt upgrade -y
curl -fsSL https://get.Docker.com -o get-Docker.sh
sudo sh get-Docker.sh
sudo usermod -aG docker $USER
newgrp docker
docker run hello-world
Bild nach der Installation

image.png

Bild nach "docker run hello-word"

image.png

Spoolman Docker Container installieren
1. Verzeichnes für die Spoolman Datenbank anlegen
cd ~
mkdir spoolman
cd spoolman/
mkdir data
chown 1000:1000 data
nano docker-compose.yml
2. Docker-compose.yml
version: '3.8'
services:
  spoolman:
    image: ghcr.io/donkie/spoolman:latest
    restart: unless-stopped
    volumes:
      # Mount the host machine's ./data directory into the container's /home/app/.local/share/spoolman directory
      - type: bind
        source: ./data # This is where the data will be stored locally. Could also be set to for example `source: /home/pi/printer_data/spoolman`.
        target: /home/app/.local/share/spoolman # Do NOT change this line
    ports:
      # Map the host machine's port 7912 to the container's port 8000
      - "7912:8000"
    environment:
      - TZ=Europe/Berlin # Optional, defaults to UTC
3. Container starten
docker compose up -d

Spoolman könnt ihr wie folg erreichen

http://192.168.xxx.xxx:7912

Spoolman Datenbank von Standalone auf Docker

Die Datenbank wird standardmäßig bei der Standalone in folgenden Verzeichnis gespeichert:

~/.local/share/spoolman/spoolman.db

Ihr müsst sie dann in euer angelegtes "Data" Verzeichnis kopieren

cd ~
cp .local/share/spoolman/spoolman.db ~/spoolman/data/spoolman.db
Moonraker.conf und printer.cfg anpassen
moonraker.conf
[spoolman]
server: http://192.168.0.123:7912
#   URL to the Spoolman instance. This parameter must be provided.
sync_rate: 5
#   The interval, in seconds, between sync requests with the
#   Spoolman server.  The default is 5.
printer.cfg | macros.cfg
[gcode_macro SET_ACTIVE_SPOOL]
gcode:
  {% if params.ID %}
    {% set id = params.ID|int %}
    {action_call_remote_method(
       "spoolman_set_active_spool",
       spool_id=id
    )}
  {% else %}
    {action_respond_info("Parameter 'ID' is required")}
  {% endif %}

[gcode_macro CLEAR_ACTIVE_SPOOL]
gcode:
  {action_call_remote_method(
    "spoolman_set_active_spool",
    spool_id=None
  )}
Beispiel Spoolman auf der Weboberfläche

image.png

Hilfe - Wenn ihr falsche Daten in der moonraker.conf eingeben habt

1.  Per SSH auf den Pi verbinden
2. moonraker.conf bearbeiten

cd ~
nano printer_data/config/moonraker.conf

3. Nach der Bearbeitung Dienst neustarten:

sudo service moonraker restart
Optional - Bug bei Standalone Lösung

Es gibt aktuell noch folgenden Issue: (Stand 05.11.2023)
Problem:
In der Standalone Version beendet sich der spoolman Service wenn er mit --user Parameter unter dem User pi gestartet wird.
Lösung:
Links zum Issue
(root user notwendig)

systemctl --user stop Spoolman
systemctl --user disable Spoolman
sudo su 
cd /home/pi/.config/systemd/user/
mv Spoolman.service /etc/systemd/system/
nano /etc/systemd/system/Spoolman.service

Folgendes unter [Service] eintragen:

User=pi
Group=pi

Dienst speichern und neustarten:

systemctl daemon-reload
systemctl enable Spoolman
systemctl start Spoolman

Prüfen ob es geklappt hat:

ps -axu |grep spoolman

-> pi 246703 0.3 1.9 686968 72340 ? Sl 15:55 1:28 /home/pi/Spoolman-0.13.1/.venv/bin/python /home/pi/Spoolman-0.13.1/.venv/bin/uvicorn spoolman.main:app --host 0.0.0.0 --port 7912