# 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](/Docs/De/11-Admin#115-system-plugin-verwaltung) --- ## Übersicht | Eigenschaft | Wert | |-------------|------| | **Plugin-Typ** | Driver (Druckertreiber) | | **Autor** | FilaMan | | **Quelle** | [Fire-Devils/filaman-plugins](https://github.com/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): ```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: ```bash 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: ```ini [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** ```bash sudo systemctl restart moonraker ``` Überprüfen Sie anschließend die Moonraker-Logs auf Fehler: ```bash 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: ```ini [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](/Docs/De/18-Filamandb) | [Weiter: Installation auf dem Raspberry Pi →](/Docs/De/20-Installation-Raspberry-Pi)