Blame

d23adc Manuel Weiser 2026-05-30 06:38:15
docs: Add Moonraker plugin documentation and update table of contents
1
# Plugin: Moonraker
2
3
Die **Moonraker-Integration** besteht aus zwei Komponenten, die zusammen die vollständige Anbindung von Klipper/Moonraker-Druckern an FilaMan ermöglichen:
4
5
1. **FilaMan Moonraker Driver Plugin** – wird in FilaMan installiert und stellt den Druckertreiber bereit
6
2. **FilaMan Moonraker Component** – wird manuell in Moonraker installiert und läuft auf dem Drucker-Server (z. B. Raspberry Pi); übernimmt Extrusionsmessung und Verbrauchsmeldung
7
8
**Installation des Driver-Plugins:** → [Admin: Plugin-Verwaltung](/Docs/De/11-Admin#115-system-plugin-verwaltung)
9
10
---
11
12
## Übersicht
13
14
| Eigenschaft | Wert |
15
|-------------|------|
16
| **Plugin-Typ** | Driver (Druckertreiber) |
17
| **Autor** | FilaMan |
18
| **Quelle** | [Fire-Devils/filaman-plugins](https://github.com/Fire-Devils/filaman-plugins) (Registry) |
19
| **Verbindung** | HTTP über lokales Netzwerk |
20
| **Fähigkeiten** | Spulenzuweisung, Extrusionsmessung, automatische Verbrauchserfassung |
21
22
---
23
24
## Teil 1: FilaMan Moonraker Driver Plugin
25
26
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.
27
28
### Konfiguration
29
30
Beim Hinzufügen oder Bearbeiten eines Moonraker-Druckers stehen folgende Konfigurationsfelder zur Verfügung:
31
32
| Feld | Pflicht | Beschreibung |
33
|------|---------|-------------|
34
| **Moonraker URL** | Ja | Adresse des Moonraker-Servers (z. B. `http://192.168.1.20:7125`) |
35
| **API Key** | Nein | Moonraker API-Key, sofern in Moonraker konfiguriert |
36
| **Mode** | Nein | Betriebsmodus: `toolhead_only` (Standard) oder `tray_macros` |
37
| **Request Timeout (s)** | Nein | Timeout in Sekunden für HTTP-Anfragen (Standard: 10) |
38
| **Slot Count** | Nein | Anzahl der manuellen Slots (nur bei manueller Konfiguration) |
39
| **Slot Targets** | Nein | Manuelle Slot-Konfiguration (überschreibt Auto-Discovery) |
40
41
Beispielkonfiguration (JSON):
42
43
```json
44
{
45
"moonraker_url": "http://192.168.1.20:7125",
46
"api_key": "",
47
"mode": "toolhead_only",
48
"request_timeout_seconds": 10,
49
"slot_count": 1,
50
"slot_targets": [
51
{
52
"slot_index": "0-0",
53
"slot_name": "Toolhead 1",
54
"slot_kind": "toolhead",
55
"assign_gcode": "SET_TRAY_SPOOL TRAY=1 SPOOL={spool_id}"
56
}
57
]
58
}
59
```
60
61
### Modi
62
63
| Modus | Verhalten |
64
|-------|-----------|
65
| `toolhead_only` (Standard) | Spulenzuweisung setzt nur die aktive Spule in Moonraker. Slots werden automatisch aus Moonraker ermittelt (Toolheads und verfügbare Trays). |
66
| `tray_macros` | Spulenzuweisung setzt die aktive Spule in Moonraker **und** führt zusätzlich das `assign_gcode` des passenden Slots aus. |
67
68
### Slot-Discovery (Auto-Erkennung)
69
70
Das Plugin erkennt die vorhandenen Slots automatisch aus den Moonraker-Druckerobjekten:
71
72
- **Toolhead-Slots** werden aus den Druckerobjekten ermittelt (`extruder`, `extruder1`, ...)
73
- **Tray-Slots** (AFC/MMU) werden nur angezeigt, wenn Moonraker entsprechende AFC- oder MMU-Objekte meldet
74
- Wenn keine Tray-Objekte vorhanden sind, werden ausschließlich Toolhead-Slots angezeigt
75
- Die manuelle Angabe von `slot_targets` in der Konfiguration überschreibt die Auto-Discovery
76
77
### Platzhalter für `assign_gcode`
78
79
Im Modus `tray_macros` unterstützt das Feld `assign_gcode` folgende Platzhalter:
80
81
| Platzhalter | Beschreibung |
82
|-------------|-------------|
83
| `{spool_id}` | FilaMan Spulen-ID |
84
| `{slot_index}` | Index des Slots (z. B. `0-0`) |
85
| `{ams_id}` | AMS/Tray-Einheit |
86
| `{tray_id}` | Tray-Slot-Nummer |
87
| `{material_type}` | Materialtyp (z. B. `PLA`) |
88
| `{color}` | Farbe der Spule (Hex) |
89
90
---
91
92
## Teil 2: FilaMan Moonraker Component (manuelle Installation)
93
94
Die Moonraker-Komponente ist eine native Moonraker-Erweiterung, die auf demselben Server wie Moonraker läuft (meist ein Raspberry Pi). Sie übernimmt:
95
96
- **Verbrauchsmessung** – Extrusionslänge aus Klipper-Toolhead-Updates messen
97
- **Gewichtsberechnung** – Länge (mm) in Gewicht (g) umrechnen anhand der Filament-Metadaten
98
- **Verbrauchsmeldung** – Verbrauch automatisch an FilaMan melden (`/api/v1/spools/{id}/consumptions`)
99
- **Spool-Tracking** – Aktive Spule per Moonraker-Endpunkt und Remote-Method verwalten
100
101
> **Hinweis:** Die Moonraker-Komponente ist **optional**, aber empfohlen. Ohne sie kann FilaMan keine automatische Verbrauchserfassung für Klipper-Drucker durchführen.
102
103
### Voraussetzungen
104
105
- Moonraker und Klipper sind installiert und lauffähig
106
- FilaMan ist im lokalen Netzwerk erreichbar
107
- SSH-Zugriff auf den Drucker-Server (z. B. Raspberry Pi)
108
109
### Installation
110
111
**Schritt 1: Komponentendatei herunterladen**
112
113
Verbinden Sie sich per SSH mit dem Drucker-Server und laden Sie die Datei `filaman.py` in das Moonraker-Komponentenverzeichnis herunter:
114
115
```bash
116
cd ~/moonraker/moonraker/components
117
wget https://github.com/Fire-Devils/FilaMan-Moonraker-Komponente/raw/main/filaman.py
118
```
119
120
Alternativ können Sie die Datei manuell herunterladen und per SFTP/SCP übertragen.
121
122
**Schritt 2: Moonraker-Konfiguration anpassen**
123
124
Ö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:
125
126
```ini
127
[filaman]
128
server: http://192.168.1.50:8000
129
api_key: uak.123.xxxxxxxxxxxxxxxxxxxxx
130
sync_rate: 5
131
default_density_g_cm3: 1.24
132
default_diameter_mm: 1.75
133
```
134
135
Ersetzen Sie `http://192.168.1.50:8000` durch die tatsächliche URL Ihrer FilaMan-Instanz.
136
137
**Schritt 3: Moonraker neu starten**
138
139
```bash
140
sudo systemctl restart moonraker
141
```
142
143
Überprüfen Sie anschließend die Moonraker-Logs auf Fehler:
144
145
```bash
146
journalctl -u moonraker -n 50
147
```
148
149
### Konfigurationsoptionen
150
151
| Option | Pflicht | Standardwert | Beschreibung |
152
|--------|---------|--------------|-------------|
153
| `server` | Ja | – | Basis-URL der FilaMan-Instanz |
154
| `api_key` | Empfohlen | – | FilaMan API-Key (`uak.<id>.<geheimnis>`) |
155
| `sync_rate` | Nein | `5` | Meldeintervall in Sekunden |
156
| `default_density_g_cm3` | Nein | `1.24` | Fallback-Dichte für Gewichtsberechnung (g/cm³) |
157
| `default_diameter_mm` | Nein | `1.75` | Fallback-Filamentdurchmesser in mm |
158
159
### HTTP-Endpunkte
160
161
Nach der Installation stellt die Komponente folgende Endpunkte bereit:
162
163
| Methode | Endpunkt | Beschreibung |
164
|---------|----------|-------------|
165
| `GET` / `POST` | `/server/filaman/spool_id` | Aktive Spule abrufen oder setzen |
166
| `GET` | `/server/filaman/status` | Verbindungs- und Synchronisierungsstatus |
167
| `POST` | `/server/filaman/proxy` | Proxy-Anfragen an FilaMan weiterleiten |
168
169
Zusätzlich sind Spoolman-kompatible Aliase immer aktiv:
170
171
| Methode | Endpunkt |
172
|---------|----------|
173
| `GET` / `POST` | `/server/spoolman/spool_id` |
174
| `GET` | `/server/spoolman/status` |
175
| `POST` | `/server/spoolman/proxy` |
176
177
### Remote-Methoden (GCode-Makros)
178
179
Die Komponente registriert folgende Remote-Methoden, die in Klipper-Makros aufgerufen werden können:
180
181
- `filaman_set_active_spool`
182
- `spoolman_set_active_spool` (Spoolman-kompatibler Alias)
183
184
### GCode-Makros einrichten
185
186
Fügen Sie diese Makros in Ihre `printer.cfg` oder eine eingebundene Konfigurationsdatei ein, um die aktive Spule über GCode steuern zu können:
187
188
```ini
189
[gcode_macro SET_ACTIVE_SPOOL]
190
gcode:
191
{% if params.ID %}
192
{% set id = params.ID|int %}
193
{action_call_remote_method("filaman_set_active_spool", spool_id=id)}
194
{% else %}
195
{action_respond_info("Parameter 'ID' is required")}
196
{% endif %}
197
198
[gcode_macro CLEAR_ACTIVE_SPOOL]
199
gcode:
200
{action_call_remote_method("filaman_set_active_spool", spool_id=None)}
201
```
202
203
Anschließend können Sie in Ihrem Druckstart-Makro oder manuell über die Konsole die aktive Spule setzen:
204
205
```
206
SET_ACTIVE_SPOOL ID=42
207
CLEAR_ACTIVE_SPOOL
208
```
209
210
---
211
212
## Zusammenspiel beider Komponenten
213
214
```
215
FilaMan Moonraker-Server (Pi)
216
───────── ─────────────────────
217
Driver Plugin ←──► Moonraker Component
218
│ │
219
│ POST spool_id │ Extrusionsdaten
220
│ (Zuweisung) │ (Verbrauchsmeldung)
221
└──────────────────► └──────────────────► FilaMan API
222
```
223
224
- Das **Driver Plugin** sendet Spulenzuweisungen aus FilaMan an Moonraker
225
- Die **Moonraker-Komponente** misst den Extrusionsfortschritt und meldet den Verbrauch direkt an FilaMan zurück
226
227
> **Tipp:** Beide Komponenten arbeiten unabhängig voneinander. Sie können das Driver Plugin ohne die Moonraker-Komponente nutzen (nur Zuweisung, keine Verbrauchsmessung) oder umgekehrt.
228
229
---
230
231
← [Zurück: FilaManDB Community-Datenbank](/Docs/De/18-Filamandb) | [Weiter: Installation auf dem Raspberry Pi →](/Docs/De/20-Installation-Raspberry-Pi)