Plugin: Moonraker

Die Moonraker-Integration besteht aus zwei Komponenten, die zusammen die vollständige Anbindung von Klipper/Moonraker-Druckern an FilaMan ermöglichen:

  1. FilaMan Moonraker Driver Plugin – wird in FilaMan installiert und stellt den Druckertreiber bereit
  2. 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_targets in 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_spool
  • spoolman_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 →