NEWS
Filamentmanager
-
Hallo zusammen.
Ich möchte euch mein neustes Projekt vorstellen.
Seit einem Jahr habe ich nun einen 3d Drucker, Prusa MK4s.
Mittlerweile die 20te Spule verdruckt und es nimmt kein Ende ;)
Auch die Spulen in Regalen und Schränken werden immer mehr... ihr kennt das sicherlich :)
Da ich vor ein paar Wochen auf Claude Code gestoßen bin, hatte ich mich an ein Verwaltungstool für meine Spulensammlung gemacht.
Natürlich hat es auch eine MQTT Schnittstelle und iobroker bekommt den Status meines Prusas mitgeteilt. Hier starte ich dann automatisch meine Gehäuse Lüftung und internen Filter.So schließt sich auch der Kreis und der Bezug zu iobroker.
Hier einmal die Readme des Projektes:
# FilamentManager Lokale Web-App zur Verwaltung von 3D-Drucker-Filamentspulen. Läuft auf Debian Linux. ## Funktionen - Spulen anlegen, bearbeiten, löschen (Hersteller, Material, Farbe, Foto, Shop-Link) - Restmenge tracken mit Verbrauchsprotokoll - Lagerorte verwalten (Regal, Lager) - QR-Code-Etiketten generieren und auf Zweckform L4744 REV drucken - Ersatzspulen-Anzeige: zeigt passende ungeöffnete Spulen pro offener Spule - **PrusaLink-Monitor:** automatische Verbrauchserfassung per Druckeranbindung - **Mehrfarben-Druck:** bis zu 5 Filament-Slots pro Drucker, Verbrauch wird pro Tool separat abgezogen - **MQTT-Integration:** Druckerstatus und Spulendaten live an ioBroker oder andere Broker senden ## Installation ### 1. MariaDB-Datenbank einrichten ```sql CREATE DATABASE filamentmanager CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'filament_user'@'%' IDENTIFIED BY 'sicheres-passwort'; GRANT ALL PRIVILEGES ON filamentmanager.* TO 'filament_user'@'%'; FLUSH PRIVILEGES;2. Konfiguration
cp .env.example .env nano .envFolgende Werte eintragen:
DB_HOST=192.168.x.x # IP deines MariaDB-Servers DB_PORT=3306 DB_NAME=filamentmanager DB_USER=filament_user DB_PASSWORD=sicheres-passwort SECRET_KEY=zufaelliger-langer-string3. Starten
bash start.shBeim ersten Start wird automatisch ein Python-Virtualenv erstellt und alle Abhängigkeiten installiert.
Die App ist dann erreichbar unter:
- Lokal: http://localhost:5000
- Im Heimnetz: http://<deine-IP>:5000
Dauerhaft als Systemdienst einrichten (optional)
sudo nano /etc/systemd/system/filamentmanager.service[Unit] Description=FilamentManager After=network.target [Service] Type=simple User=DEIN_USER WorkingDirectory=/pfad/zu/filamentmanager ExecStart=/pfad/zu/filamentmanager/.venv/bin/python app.py Restart=on-failure EnvironmentFile=/pfad/zu/filamentmanager/.env [Install] WantedBy=multi-user.targetsudo systemctl daemon-reload sudo systemctl enable --now filamentmanagerPrusaLink-Monitor
Unter Drucker kann jeder PrusaLink-Drucker mit IP-Adresse und API-Key eingetragen werden. Ein Hintergrundthread pro Drucker pollt die PrusaLink-API und:
- aktualisiert den Druckerstatus in Echtzeit (IDLE, PRINTING, FINISHED, …)
- liest Filamentverbrauch aus der GCode/BGcode-Datei (inkl. komprimierter BGcode-Dateien des PrusaSlicer)
- zieht nach Druckende den verbrauchten Wert automatisch von der zugewiesenen Spule ab
Nach dem Hinzufügen oder Ändern eines Druckers muss die App neu gestartet werden, damit der Monitor-Thread aktiv wird.
Mehrfarben-Druck
Der FilamentManager unterstützt Drucker mit manuellem Farbwechsel (M600) sowie MMU/AMS-Setups.
Jedem Drucker können bis zu 5 Filament-Slots zugewiesen werden:
Slot Bedeutung Farbe 1 (Slot 0) Erstes eingelegtes Filament Farbe 2–5 (Slot 1–4) Weitere Farben nach manuellem Farbwechsel Bei Druckende wird der Verbrauch pro Tool aus der BGcode/GCode-Datei gelesen und separat von der jeweils zugewiesenen Spule abgezogen. Bei MMU-Druckern werden die kommaseparierten Verbrauchswerte (
filament used [g]=10.5, 5.2, 0.0) automatisch auf die Slots verteilt.MQTT-Integration
Die MQTT-Verbindung wird vollständig über die Web-Oberfläche konfiguriert — kein Editieren von Konfigurationsdateien nötig.
Einstellungen → MQTT-Verbindung:
Feld Beschreibung Broker-Adresse IP oder Hostname des MQTT-Brokers Port Standard: 1883 Benutzername / Passwort Optional, für authentifizierte Broker Topic-Prefix Präfix für alle Topics, Standard: filamentmanagerTLS/SSL Verschlüsselte Verbindung aktivieren Der Button Verbindung testen prüft die Erreichbarkeit des Brokers, ohne die laufende Verbindung zu unterbrechen.
Veröffentlichte Topics
filamentmanager/printer/1/state → IDLE | PRINTING | PAUSED | FINISHED | STOPPED | ERROR filamentmanager/printer/1/progress → 0–100 filamentmanager/printer/1/event → print_started | print_finished filamentmanager/printer/1/spool/material → z.B. PETG filamentmanager/printer/1/spool/color → z.B. Orange filamentmanager/printer/1/spool/remaining_g → z.B. 187Alle State- und Spulen-Topics werden mit
retain=trueveröffentlicht, sodass ioBroker und andere Clients den letzten Wert sofort nach dem Abonnieren erhalten.Ist MQTT deaktiviert oder kein Host eingetragen, ist die Integration komplett inaktiv — der Monitor-Thread läuft ohne MQTT-Overhead weiter.
QR-Code-Etiketten
Die QR-Codes kodieren die LAN-URL der Spule (z.B.
http://192.168.1.50:5000/spools/7).
Jedes Handy im Heimnetz kann den Code scannen und landet direkt auf der Detailseite.Zweckform L4744 REV
Der Etikett-Druck ist auf das Format Zweckform L4744 REV ausgelegt (A4, 10 Etiketten pro Bogen, 96 × 50,8 mm):
- Spule öffnen → QR-Etikett drucken
- Im Browser-Dialog den gewünschten Steckplatz auf dem Bogen anklicken (1–10)
- Drucken — nur das gewählte Etikett wird an der exakten Position ausgegeben
So kann ein Bogen mehrfach verwendet werden, indem nacheinander verschiedene Steckplätze belegt werden.
Empfohlen: Drucken in Chrome/Chromium, Seitenränder auf „Keine" stellen.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
