Plugin: Moonraker
Die Moonraker-Integration besteht aus zwei Komponenten, die zusammen die vollständige Anbindung von Klipper/Moonraker-Druckern an FilaMan ermöglichen:
- FilaMan Moonraker Driver Plugin – wird in FilaMan installiert und stellt den Druckertreiber bereit
- FilaMan Moonraker Component – wird manuell in Moonraker installiert und läuft auf dem Drucker-Server (z. B. Raspberry Pi); übernimmt Extrusionsmessung und Verbrauchsmeldung
Installation des Driver-Plugins: → Admin: Plugin-Verwaltung
Übersicht
| Eigenschaft | Wert |
|---|---|
| Plugin-Typ | Driver (Druckertreiber) |
| Autor | FilaMan |
| Quelle | Fire-Devils/filaman-plugins (Registry) |
| Verbindung | HTTP über lokales Netzwerk |
| Fähigkeiten | Spulenzuweisung, Extrusionsmessung, automatische Verbrauchserfassung |
Teil 1: FilaMan Moonraker Driver Plugin
Das Driver Plugin wird in FilaMan installiert und ermöglicht die Kommunikation mit dem Moonraker-Server. Es leitet Spulenzuweisungen aus FilaMan an den Moonraker-Endpunkt /server/filaman/spool_id weiter.
Konfiguration
Beim Hinzufügen oder Bearbeiten eines Moonraker-Druckers stehen folgende Konfigurationsfelder zur Verfügung:
| Feld | Pflicht | Beschreibung |
|---|---|---|
| Moonraker URL | Ja | Adresse des Moonraker-Servers (z. B. http://192.168.1.20:7125) |
| API Key | Nein | Moonraker API-Key, sofern in Moonraker konfiguriert |
| Mode | Nein | Betriebsmodus: toolhead_only (Standard) oder tray_macros |
| Request Timeout (s) | Nein | Timeout in Sekunden für HTTP-Anfragen (Standard: 10) |
| Slot Count | Nein | Anzahl der manuellen Slots (nur bei manueller Konfiguration) |
| Slot Targets | Nein | Manuelle Slot-Konfiguration (überschreibt Auto-Discovery) |
Beispielkonfiguration (JSON):
{ "moonraker_url": "http://192.168.1.20:7125", "api_key": "", "mode": "toolhead_only", "request_timeout_seconds": 10, "slot_count": 1, "slot_targets": [ { "slot_index": "0-0", "slot_name": "Toolhead 1", "slot_kind": "toolhead", "assign_gcode": "SET_TRAY_SPOOL TRAY=1 SPOOL={spool_id}" } ] }
Modi
| Modus | Verhalten |
|---|---|
toolhead_only (Standard) |
Spulenzuweisung setzt nur die aktive Spule in Moonraker. Slots werden automatisch aus Moonraker ermittelt (Toolheads und verfügbare Trays). |
tray_macros |
Spulenzuweisung setzt die aktive Spule in Moonraker und führt zusätzlich das assign_gcode des passenden Slots aus. |
Slot-Discovery (Auto-Erkennung)
Das Plugin erkennt die vorhandenen Slots automatisch aus den Moonraker-Druckerobjekten:
- Toolhead-Slots werden aus den Druckerobjekten ermittelt (
extruder,extruder1, ...) - Tray-Slots (AFC/MMU) werden nur angezeigt, wenn Moonraker entsprechende AFC- oder MMU-Objekte meldet
- Wenn keine Tray-Objekte vorhanden sind, werden ausschließlich Toolhead-Slots angezeigt
- Die manuelle Angabe von
slot_targetsin der Konfiguration überschreibt die Auto-Discovery
Platzhalter für assign_gcode
Im Modus tray_macros unterstützt das Feld assign_gcode folgende Platzhalter:
| Platzhalter | Beschreibung |
|---|---|
{spool_id} |
FilaMan Spulen-ID |
{slot_index} |
Index des Slots (z. B. 0-0) |
{ams_id} |
AMS/Tray-Einheit |
{tray_id} |
Tray-Slot-Nummer |
{material_type} |
Materialtyp (z. B. PLA) |
{color} |
Farbe der Spule (Hex) |
Teil 2: FilaMan Moonraker Component (manuelle Installation)
Die Moonraker-Komponente ist eine native Moonraker-Erweiterung, die auf demselben Server wie Moonraker läuft (meist ein Raspberry Pi). Sie übernimmt:
- Verbrauchsmessung – Extrusionslänge aus Klipper-Toolhead-Updates messen
- Gewichtsberechnung – Länge (mm) in Gewicht (g) umrechnen anhand der Filament-Metadaten
- Verbrauchsmeldung – Verbrauch automatisch an FilaMan melden (
/api/v1/spools/{id}/consumptions) - Spool-Tracking – Aktive Spule per Moonraker-Endpunkt und Remote-Method verwalten
Hinweis: Die Moonraker-Komponente ist optional, aber empfohlen. Ohne sie kann FilaMan keine automatische Verbrauchserfassung für Klipper-Drucker durchführen.
Voraussetzungen
- Moonraker und Klipper sind installiert und lauffähig
- FilaMan ist im lokalen Netzwerk erreichbar
- SSH-Zugriff auf den Drucker-Server (z. B. Raspberry Pi)
Installation
Schritt 1: Komponentendatei herunterladen
Verbinden Sie sich per SSH mit dem Drucker-Server und laden Sie die Datei filaman.py in das Moonraker-Komponentenverzeichnis herunter:
cd ~/moonraker/moonraker/components wget https://github.com/Fire-Devils/FilaMan-Moonraker-Komponente/raw/main/filaman.py
Alternativ können Sie die Datei manuell herunterladen und per SFTP/SCP übertragen.
Schritt 2: Moonraker-Konfiguration anpassen
Öffnen Sie die Datei moonraker.conf (in der Regel unter ~/printer_data/config/moonraker.conf oder ~/klipper_config/moonraker.conf) und fügen Sie den folgenden Abschnitt hinzu:
[filaman] server: http://192.168.1.50:8000 api_key: uak.123.xxxxxxxxxxxxxxxxxxxxx sync_rate: 5 default_density_g_cm3: 1.24 default_diameter_mm: 1.75
Ersetzen Sie http://192.168.1.50:8000 durch die tatsächliche URL Ihrer FilaMan-Instanz.
Schritt 3: Moonraker neu starten
sudo systemctl restart moonraker
Überprüfen Sie anschließend die Moonraker-Logs auf Fehler:
journalctl -u moonraker -n 50
Konfigurationsoptionen
| Option | Pflicht | Standardwert | Beschreibung |
|---|---|---|---|
server |
Ja | – | Basis-URL der FilaMan-Instanz |
api_key |
Empfohlen | – | FilaMan API-Key (uak.<id>.<geheimnis>) |
sync_rate |
Nein | 5 |
Meldeintervall in Sekunden |
default_density_g_cm3 |
Nein | 1.24 |
Fallback-Dichte für Gewichtsberechnung (g/cm³) |
default_diameter_mm |
Nein | 1.75 |
Fallback-Filamentdurchmesser in mm |
HTTP-Endpunkte
Nach der Installation stellt die Komponente folgende Endpunkte bereit:
| Methode | Endpunkt | Beschreibung |
|---|---|---|
GET / POST |
/server/filaman/spool_id |
Aktive Spule abrufen oder setzen |
GET |
/server/filaman/status |
Verbindungs- und Synchronisierungsstatus |
POST |
/server/filaman/proxy |
Proxy-Anfragen an FilaMan weiterleiten |
Zusätzlich sind Spoolman-kompatible Aliase immer aktiv:
| Methode | Endpunkt |
|---|---|
GET / POST |
/server/spoolman/spool_id |
GET |
/server/spoolman/status |
POST |
/server/spoolman/proxy |
Remote-Methoden (GCode-Makros)
Die Komponente registriert folgende Remote-Methoden, die in Klipper-Makros aufgerufen werden können:
filaman_set_active_spoolspoolman_set_active_spool(Spoolman-kompatibler Alias)
GCode-Makros einrichten
Fügen Sie diese Makros in Ihre printer.cfg oder eine eingebundene Konfigurationsdatei ein, um die aktive Spule über GCode steuern zu können:
[gcode_macro SET_ACTIVE_SPOOL] gcode: {% if params.ID %} {% set id = params.ID|int %} {action_call_remote_method("filaman_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("filaman_set_active_spool", spool_id=None)}
Anschließend können Sie in Ihrem Druckstart-Makro oder manuell über die Konsole die aktive Spule setzen:
SET_ACTIVE_SPOOL ID=42 CLEAR_ACTIVE_SPOOL
Zusammenspiel beider Komponenten
FilaMan Moonraker-Server (Pi) ───────── ───────────────────── Driver Plugin ←──► Moonraker Component │ │ │ POST spool_id │ Extrusionsdaten │ (Zuweisung) │ (Verbrauchsmeldung) └──────────────────► └──────────────────► FilaMan API
- Das Driver Plugin sendet Spulenzuweisungen aus FilaMan an Moonraker
- Die Moonraker-Komponente misst den Extrusionsfortschritt und meldet den Verbrauch direkt an FilaMan zurück
Tipp: Beide Komponenten arbeiten unabhängig voneinander. Sie können das Driver Plugin ohne die Moonraker-Komponente nutzen (nur Zuweisung, keine Verbrauchsmessung) oder umgekehrt.
← Zurück: FilaManDB Community-Datenbank | Weiter: Installation auf dem Raspberry Pi →