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
13148c Manuel Weiser 2026-07-28 22:07:56
docs: Update Moonraker installation instructions with new download link and add README reference
111
> **Hinweis:** Siehe auch FilaMan Moonraker Readme https://github.com/Fire-Devils/FilaMan-Moonraker-Komponente
112
d23adc Manuel Weiser 2026-05-30 06:38:15
docs: Add Moonraker plugin documentation and update table of contents
113
**Schritt 1: Komponentendatei herunterladen**
114
115
Verbinden Sie sich per SSH mit dem Drucker-Server und laden Sie die Datei `filaman.py` in das Moonraker-Komponentenverzeichnis herunter:
116
117
```bash
118
cd ~/moonraker/moonraker/components
13148c Manuel Weiser 2026-07-28 22:07:56
docs: Update Moonraker installation instructions with new download link and add README reference
119
wget https://raw.githubusercontent.com/Fire-Devils/FilaMan-Moonraker-Komponente/refs/heads/main/filaman.py
d23adc Manuel Weiser 2026-05-30 06:38:15
docs: Add Moonraker plugin documentation and update table of contents
120
```
121
122
Alternativ können Sie die Datei manuell herunterladen und per SFTP/SCP übertragen.
123
124
**Schritt 2: Moonraker-Konfiguration anpassen**
125
126
Ö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:
127
128
```ini
129
[filaman]
130
server: http://192.168.1.50:8000
131
api_key: uak.123.xxxxxxxxxxxxxxxxxxxxx
132
sync_rate: 5
133
default_density_g_cm3: 1.24
134
default_diameter_mm: 1.75
135
```
136
137
Ersetzen Sie `http://192.168.1.50:8000` durch die tatsächliche URL Ihrer FilaMan-Instanz.
138
139
**Schritt 3: Moonraker neu starten**
140
141
```bash
142
sudo systemctl restart moonraker
143
```
144
145
Überprüfen Sie anschließend die Moonraker-Logs auf Fehler:
146
147
```bash
148
journalctl -u moonraker -n 50
149
```
150
151
### Konfigurationsoptionen
152
153
| Option | Pflicht | Standardwert | Beschreibung |
154
|--------|---------|--------------|-------------|
155
| `server` | Ja | – | Basis-URL der FilaMan-Instanz |
156
| `api_key` | Empfohlen | – | FilaMan API-Key (`uak.<id>.<geheimnis>`) |
157
| `sync_rate` | Nein | `5` | Meldeintervall in Sekunden |
158
| `default_density_g_cm3` | Nein | `1.24` | Fallback-Dichte für Gewichtsberechnung (g/cm³) |
159
| `default_diameter_mm` | Nein | `1.75` | Fallback-Filamentdurchmesser in mm |
160
161
### HTTP-Endpunkte
162
163
Nach der Installation stellt die Komponente folgende Endpunkte bereit:
164
165
| Methode | Endpunkt | Beschreibung |
166
|---------|----------|-------------|
167
| `GET` / `POST` | `/server/filaman/spool_id` | Aktive Spule abrufen oder setzen |
168
| `GET` | `/server/filaman/status` | Verbindungs- und Synchronisierungsstatus |
169
| `POST` | `/server/filaman/proxy` | Proxy-Anfragen an FilaMan weiterleiten |
170
171
Zusätzlich sind Spoolman-kompatible Aliase immer aktiv:
172
173
| Methode | Endpunkt |
174
|---------|----------|
175
| `GET` / `POST` | `/server/spoolman/spool_id` |
176
| `GET` | `/server/spoolman/status` |
177
| `POST` | `/server/spoolman/proxy` |
178
179
### Remote-Methoden (GCode-Makros)
180
181
Die Komponente registriert folgende Remote-Methoden, die in Klipper-Makros aufgerufen werden können:
182
183
- `filaman_set_active_spool`
184
- `spoolman_set_active_spool` (Spoolman-kompatibler Alias)
185
186
### GCode-Makros einrichten
187
188
Fügen Sie diese Makros in Ihre `printer.cfg` oder eine eingebundene Konfigurationsdatei ein, um die aktive Spule über GCode steuern zu können:
189
190
```ini
191
[gcode_macro SET_ACTIVE_SPOOL]
192
gcode:
193
{% if params.ID %}
194
{% set id = params.ID|int %}
195
{action_call_remote_method("filaman_set_active_spool", spool_id=id)}
196
{% else %}
197
{action_respond_info("Parameter 'ID' is required")}
198
{% endif %}
199
200
[gcode_macro CLEAR_ACTIVE_SPOOL]
201
gcode:
202
{action_call_remote_method("filaman_set_active_spool", spool_id=None)}
203
```
204
205
Anschließend können Sie in Ihrem Druckstart-Makro oder manuell über die Konsole die aktive Spule setzen:
206
207
```
208
SET_ACTIVE_SPOOL ID=42
209
CLEAR_ACTIVE_SPOOL
210
```
211
212
---
213
214
## Zusammenspiel beider Komponenten
215
216
```
217
FilaMan Moonraker-Server (Pi)
218
───────── ─────────────────────
219
Driver Plugin ←──► Moonraker Component
220
│ │
221
│ POST spool_id │ Extrusionsdaten
222
│ (Zuweisung) │ (Verbrauchsmeldung)
223
└──────────────────► └──────────────────► FilaMan API
224
```
225
226
- Das **Driver Plugin** sendet Spulenzuweisungen aus FilaMan an Moonraker
227
- Die **Moonraker-Komponente** misst den Extrusionsfortschritt und meldet den Verbrauch direkt an FilaMan zurück
228
229
> **Tipp:** Beide Komponenten arbeiten unabhängig voneinander. Sie können das Driver Plugin ohne die Moonraker-Komponente nutzen (nur Zuweisung, keine Verbrauchsmessung) oder umgekehrt.
230
231
---
232
233
← [Zurück: FilaManDB Community-Datenbank](/Docs/De/18-Filamandb) | [Weiter: Installation auf dem Raspberry Pi →](/Docs/De/20-Installation-Raspberry-Pi)