# Plugin: Spoolman API

Das **Spoolman API-Plugin** stellt eine vollständig Spoolman-kompatible REST-API bereit, die auf das interne Datenmodell von FilaMan abgebildet wird. Externe Tools wie **Moonraker**, **OctoPrint** und andere können FilaMan damit als **Drop-in-Ersatz für Spoolman** nutzen. Im Gegensatz zu Spoolman selbst enthält dieses Plugin eine **IP-basierte Zugriffskontrolle** — eine Sicherheitsebene, die in Spoolman fehlt.

**Installation:** → [Admin: Plugin-Verwaltung](/Docs/De/11-Admin#115-system-plugin-verwaltung)

---

## Übersicht

| Eigenschaft | Wert |
|-------------|------|
| **Plugin-Typ** | Integration |
| **Autor** | FilaMan |
| **Quelle** | [Fire-Devils/filaman-plugins](https://github.com/Fire-Devils/filaman-plugins) (Registry) |
| **API-Pfad** | `/spoolman/api/v1/` |
| **Fähigkeiten** | Spoolman API v1-Kompatibilität, CRUD-Operationen, CSV/JSON-Export, IP-Zugriffskontrolle |

---

## Was ist Spoolman?

[Spoolman](https://github.com/Donkie/Spoolman) ist eine verbreitete Open-Source-Software zur Verwaltung von 3D-Drucker-Filamenten. Viele Tools im 3D-Druck-Ökosystem (z. B. Moonraker, OctoPrint) unterstützen die Spoolman-API, um Filament-Verbrauch zu tracken und Spulen zu verwalten.

Mit diesem Plugin kann FilaMan anstelle von Spoolman eingesetzt werden, ohne dass externe Tools umkonfiguriert werden müssen — sie sprechen einfach die gleiche API.

---

## Konfiguration externer Tools

### Moonraker (Klipper)

Tragen Sie in Ihrer `moonraker.conf` folgendes ein:

```ini
[spoolman]
server: http://<filaman-host>:8000/spoolman
```

Ersetzen Sie `<filaman-host>` durch die IP-Adresse oder den Hostnamen Ihrer FilaMan-Installation.

### OctoPrint

Verwenden Sie in den Spoolman-Plugin-Einstellungen von OctoPrint die URL:

```
http://<filaman-host>:8000/spoolman
```

### Andere Tools

Jedes Tool, das die Spoolman-API unterstützt, kann mit der gleichen URL konfiguriert werden:

```
http://<filaman-host>:8000/spoolman/api/v1/
```

---

## IP-Zugriffskontrolle

Das Plugin bietet eine **IP-basierte Zugriffskontrolle**, mit der Sie einschränken können, welche Geräte auf die Spoolman-API zugreifen dürfen.

### Einstellungen

Die Einstellungen finden Sie auf der Plugin-Seite im Admin-Bereich unter **Spoolman API**.

| Einstellung | Beschreibung |
|-------------|-------------|
| **IP-Filter aktiviert** | Schaltet die IP-Zugriffskontrolle ein/aus. Standardmäßig **deaktiviert** (alle IPs erlaubt). |
| **Erlaubte IPs** | Liste der erlaubten IP-Adressen oder Bereiche |

### Unterstützte IP-Formate

| Format | Beispiel | Beschreibung |
|--------|---------|-------------|
| **Wildcard** | `*` | Alle IPs erlauben |
| **Einzelne IP** | `192.168.1.5` | Exakte IP-Adresse |
| **CIDR-Bereich** | `192.168.1.0/24` | Gesamtes Subnetz |
| **Großer Bereich** | `10.0.0.0/8` | Großer Netzwerkbereich |

> **Hinweis:** Wenn der IP-Filter aktiviert ist und eine nicht erlaubte IP zugreift, wird der Zugriff mit HTTP 403 (Forbidden) abgelehnt.

---

## API-Endpunkte

Alle Spoolman-Endpunkte sind unter dem Pfad `/spoolman/api/v1/` verfügbar:

### System

| Methode | Pfad | Beschreibung |
|---------|------|-------------|
| GET | `/info` | API-Informationen |
| GET | `/health` | Health-Check |

### Hersteller (Vendors)

| Methode | Pfad | Beschreibung |
|---------|------|-------------|
| GET | `/vendor` | Alle Hersteller auflisten |
| POST | `/vendor` | Neuen Hersteller erstellen |
| GET | `/vendor/{id}` | Hersteller abrufen |
| PATCH | `/vendor/{id}` | Hersteller aktualisieren |
| DELETE | `/vendor/{id}` | Hersteller löschen |

### Filamente

| Methode | Pfad | Beschreibung |
|---------|------|-------------|
| GET | `/filament` | Alle Filamente auflisten |
| POST | `/filament` | Neues Filament erstellen |
| GET | `/filament/{id}` | Filament abrufen |
| PATCH | `/filament/{id}` | Filament aktualisieren |
| DELETE | `/filament/{id}` | Filament löschen |

### Spulen (Spools)

| Methode | Pfad | Beschreibung |
|---------|------|-------------|
| GET | `/spool` | Alle Spulen auflisten |
| POST | `/spool` | Neue Spule erstellen |
| GET | `/spool/{id}` | Spule abrufen |
| PATCH | `/spool/{id}` | Spule aktualisieren |
| DELETE | `/spool/{id}` | Spule löschen |
| PUT | `/spool/{id}/use` | Filament von Spule verbrauchen |
| PUT | `/spool/{id}/measure` | Spulengewicht messen |

### Weitere Endpunkte

| Methode | Pfad | Beschreibung |
|---------|------|-------------|
| GET | `/material` | Materialtypen auflisten |
| GET | `/location` | Lagerorte auflisten |
| PATCH | `/location/{name}` | Lagerort umbenennen |
| GET | `/setting/{key}` | Einstellung abrufen |
| POST | `/setting/{key}` | Einstellung setzen |

### Export

| Methode | Pfad | Beschreibung |
|---------|------|-------------|
| GET | `/export/spools` | Spulen exportieren (CSV/JSON) |
| GET | `/export/filaments` | Filamente exportieren (CSV/JSON) |
| GET | `/export/vendors` | Hersteller exportieren (CSV/JSON) |
| POST | `/backup` | Backup erstellen |

---

## Daten-Mapping

Die Spoolman-API-Begriffe werden intern auf das FilaMan-Datenmodell abgebildet:

| Spoolman-Begriff | FilaMan-Entsprechung |
|-----------------|---------------------|
| Vendor | Hersteller (Manufacturer) |
| Filament | Filament |
| Spool | Spule (Spool) |
| Location | Lagerort (Location) |
| Extra Fields | Zusatzfelder (Custom Fields) |

---

← [Zurück: Plugin: SpoolmanDB Import](/Docs/De/15-Plugin-Spoolmandb) | [Weiter: Weitere Plugins →](#)
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9