Commit fd7ef8
2026-03-13 09:07:24 Manuel Weiser: docs: Add Bambuddy plugin documentation and update table of contents| docs/de/00-inhalt.md .. | |
| @@ 28,6 28,7 @@ | |
| | 14 | [Plugin: BambuLab](/Docs/De/14-Plugin-Bambulab) | BambuLab-Druckertreiber-Plugin | | |
| | 15 | [Plugin: SpoolmanDB Import](/Docs/De/15-Plugin-Spoolmandb) | Filamente aus der SpoolmanDB importieren | | |
| | 16 | [Plugin: Spoolman API](/Docs/De/16-Plugin-Spoolmanapi) | Spoolman-kompatible API für externe Tools | | |
| + | | 17 | [Plugin: Bambuddy](/Docs/De/17-Plugin-Bambuddy) | Bambuddy-Integration: Inventory-Sync und Verbrauchsmeldung | |
| --- | |
| docs/de/16-plugin-spoolmanapi.md .. | |
| @@ 161,4 161,4 @@ | |
| --- | |
| - | ← [Zurück: Plugin: SpoolmanDB Import](/Docs/De/15-Plugin-Spoolmandb) | [Weiter: Weitere Plugins →](#) |
| + | ← [Zurück: Plugin: SpoolmanDB Import](/Docs/De/15-Plugin-Spoolmandb) | [Weiter: Plugin: Bambuddy →](/Docs/De/17-Plugin-Bambuddy) |
| /dev/null .. docs/de/17-plugin-bambuddy.md | |
| @@ 0,0 1,113 @@ | |
| + | # Plugin: Bambuddy |
| + | |
| + | Das **Bambuddy-Plugin** ist ein Driver-Plugin, das FilaMan mit [Bambuddy](https://github.com/your-org/bambuddy) – einer alternativen Verwaltungsoberfläche für BambuLab-Drucker – verbindet. Es synchronisiert den FilaMan-Spulenbestand bidirektional mit dem Bambuddy-Inventory und meldet Filamentverbrauch automatisch nach dem Druck zurück. |
| + | |
| + | **Installation:** → [Admin: Plugin-Verwaltung](/Docs/De/11-Admin#115-system-plugin-verwaltung) |
| + | |
| + | --- |
| + | |
| + | ## Übersicht |
| + | |
| + | | Eigenschaft | Wert | |
| + | |-------------|------| |
| + | | **Plugin-Typ** | Driver (Druckertreiber) | |
| + | | **Autor** | FilaMan | |
| + | | **Verbindung** | HTTP REST API + WebSocket | |
| + | | **Fähigkeiten** | Inventory-Sync, AMS-Slot-Anzeige, Verbrauchsmeldung, Online/Offline-Erkennung | |
| + | |
| + | --- |
| + | |
| + | ## Voraussetzungen |
| + | |
| + | - Ein laufender **Bambuddy-Server**, der über das Netzwerk erreichbar ist |
| + | - Ein gültiger **API-Key** aus den Bambuddy-Einstellungen |
| + | - Die **Drucker-ID** des Bambudruckers in Bambuddy (zu finden in der Bambuddy-Weboberfläche) |
| + | |
| + | --- |
| + | |
| + | ## Konfiguration |
| + | |
| + | Beim Hinzufügen oder Bearbeiten eines Bambuddy-Druckers zeigt das Plugin folgende Konfigurationsfelder: |
| + | |
| + | | Feld | Pflicht | Beschreibung | |
| + | |------|---------|-------------| |
| + | | **Bambuddy URL** | Ja | Vollständige URL zum Bambuddy-Server (z. B. `http://192.168.1.100:8080`) | |
| + | | **API Key** | Ja | API-Key aus den Bambuddy-Einstellungen (unter Bambuddy → Settings → API) | |
| + | | **Printer ID** | Ja | ID des Druckers in Bambuddy (numerisch, sichtbar in der Bambuddy-Druckerübersicht) | |
| + | | **Sync Interval** | Nein | Intervall in Sekunden für den automatischen Inventory-Sync (Standard: 300 = 5 Minuten) | |
| + | | **Reconnect Interval** | Nein | Wartezeit in Sekunden bei Verbindungsverlust vor erneutem Verbindungsversuch (Standard: 30) | |
| + | |
| + | --- |
| + | |
| + | ## Wie funktioniert die Synchronisation? |
| + | |
| + | Das Plugin hält das **Bambuddy-Inventory** automatisch aktuell – FilaMan ist dabei die Quelle der Wahrheit. |
| + | |
| + | ### Wann wird synchronisiert? |
| + | |
| + | | Auslöser | Verhalten | |
| + | |---------|-----------| |
| + | | **Beim Start des Plugins** | Vollständiger Inventory-Sync aller aktiven FilaMan-Spulen | |
| + | | **Periodisch** | Automatisch alle `Sync Interval` Sekunden (Standard: alle 5 Minuten) | |
| + | | **Bei Änderungen in FilaMan** | Sofortiger Sync innerhalb von 3 Sekunden nach jeder Datenänderung (Spule erstellt, Gewicht aktualisiert, Filament geändert etc.) | |
| + | |
| + | ### Wie werden Spulen verknüpft? |
| + | |
| + | Jede in Bambuddy erstellte Spule erhält im Feld **„Note"** den Wert `filaman:{id}` (z. B. `filaman:42`). Dieser Schlüssel ist die eindeutige Verknüpfung zwischen FilaMan-Spule und Bambuddy-Inventory-Eintrag. Wird die gleiche FilaMan-Spule erneut synchronisiert, aktualisiert das Plugin den bestehenden Bambuddy-Eintrag anstatt einen neuen zu erstellen. |
| + | |
| + | --- |
| + | |
| + | ## Was wird synchronisiert? |
| + | |
| + | Bei jedem Sync überträgt das Plugin folgende Informationen aus FilaMan nach Bambuddy: |
| + | |
| + | | FilaMan-Feld | Bambuddy-Feld | Beschreibung | |
| + | |---|---|---| |
| + | | `filament.material_type` | Material | Materialtyp (PLA, PETG, ABS …) | |
| + | | `filament.manufacturer.name` | Marke | Hersteller | |
| + | | `filament.colors[0].hex_code` | Farbe (RGBA) | Hauptfarbe der Spule | |
| + | | `initial_total_weight_g` | Nenngewicht | Ursprüngliches Gesamtgewicht | |
| + | | `initial – remaining` | Verbrauchtes Gewicht | Bereits verbrauchtes Gewicht | |
| + | | `rfid_uid` | RFID-Tag | Wird übertragen, wenn vorhanden | |
| + | | `bambu_nozzle_temp_min/max` | Düsentemperaturen | Aus den Drucker-Parametern | |
| + | |
| + | --- |
| + | |
| + | ## Verbrauchsmeldung nach dem Druck |
| + | |
| + | Das Plugin hält eine **WebSocket-Verbindung** zum Bambuddy-Server. Wenn ein Druckauftrag abgeschlossen wird, sendet Bambuddy ein `print_complete`-Event mit dem Filamentverbrauch pro AMS-Slot. Das Plugin rechnet diesen Verbrauch automatisch auf die entsprechende FilaMan-Spule an – ohne manuelle Eingabe. |
| + | |
| + | > **Voraussetzung:** Die Spule muss vor dem Druck einem AMS-Slot zugewiesen sein (siehe [AMS-Slot-Zuweisung](#ams-slot-anzeige-und-zuweisung)). |
| + | |
| + | --- |
| + | |
| + | ## AMS-Slot-Anzeige und Zuweisung |
| + | |
| + | Nach erfolgreicher Verbindung zeigt FilaMan auf der **Drucker-Seite** und der **Spulen-Detailseite** alle AMS-Slots und deren aktuellen Inhalt an. Die Anzeige aktualisiert sich in **Echtzeit** über den WebSocket. |
| + | |
| + | ### Online/Offline-Status |
| + | |
| + | Ist der Bambu-Drucker **nicht erreichbar** (laut Bambuddy offline), werden auf der Spulen-Detailseite **keine Trays** für diesen Drucker angezeigt. Sobald der Drucker wieder online ist, erscheinen die Slots automatisch. |
| + | |
| + | ### Spule einem Slot zuweisen |
| + | |
| + | Auf der **Spulen-Detailseite** können Sie eine Spule direkt einem AMS-Slot in Bambuddy zuweisen: |
| + | |
| + | 1. Klicken Sie auf einen Slot-Punkt in der Drucker-Slot-Übersicht |
| + | 2. Wählen Sie im Kontextmenü **„Spule diesem Slot zuweisen"** |
| + | 3. Bambuddy weist die Spule dem Slot zu und konfiguriert Material, Farbe und Temperaturen automatisch |
| + | |
| + | --- |
| + | |
| + | ## Sync-Aktionen |
| + | |
| + | Auf der **Drucker-Detailseite** stehen zwei manuelle Sync-Aktionen zur Verfügung: |
| + | |
| + | | Aktion | Beschreibung | |
| + | |--------|-------------| |
| + | | **Jetzt synchronisieren** | Löst sofort einen Inventory-Sync aus (FilaMan → Bambuddy) | |
| + | | **Vollständiger Resync** | Löscht **alle** Bambuddy-Inventarspulen und synchronisiert den gesamten FilaMan-Bestand neu. Sinnvoll, wenn das Inventory in Bambuddy durch externe Änderungen inkonsistent geworden ist. ⚠️ Nicht während laufender Druckaufträge ausführen. | |
| + | |
| + | --- |
| + | |
| + | ← [Zurück: Plugin: Spoolman API](/Docs/De/16-Plugin-Spoolmanapi) |
| docs/en/00-contents.md .. | |
| @@ 28,6 28,7 @@ | |
| | 14 | [Plugin: BambuLab](/Docs/En/14-Plugin-Bambulab) | BambuLab printer driver plugin | | |
| | 15 | [Plugin: SpoolmanDB Import](/Docs/En/15-Plugin-Spoolmandb) | Import filaments from the SpoolmanDB database | | |
| | 16 | [Plugin: Spoolman API](/Docs/En/16-Plugin-Spoolmanapi) | Spoolman-compatible API for external tools | | |
| + | | 17 | [Plugin: Bambuddy](/Docs/En/17-Plugin-Bambuddy) | Bambuddy integration: inventory sync and consumption reporting | |
| --- | |
| docs/en/16-plugin-spoolmanapi.md .. | |
| @@ 161,4 161,4 @@ | |
| --- | |
| - | ← [Back: Plugin: SpoolmanDB Import](/Docs/En/15-Plugin-Spoolmandb) | [Next: More Plugins →](#) |
| + | ← [Back: Plugin: SpoolmanDB Import](/Docs/En/15-Plugin-Spoolmandb) | [Next: Plugin: Bambuddy →](/Docs/En/17-Plugin-Bambuddy) |
| /dev/null .. docs/en/17-plugin-bambuddy.md | |
| @@ 0,0 1,113 @@ | |
| + | # Plugin: Bambuddy |
| + | |
| + | The **Bambuddy Plugin** is a Driver plugin that connects FilaMan with [Bambuddy](https://github.com/your-org/bambuddy) — an alternative management interface for BambuLab printers. It synchronizes the FilaMan spool inventory bidirectionally with the Bambuddy inventory and automatically reports filament consumption after each print. |
| + | |
| + | **Installation:** → [Admin: Plugin Management](/Docs/En/11-Admin#115-system-plugin-management) |
| + | |
| + | --- |
| + | |
| + | ## Overview |
| + | |
| + | | Property | Value | |
| + | |----------|-------| |
| + | | **Plugin Type** | Driver (Printer Driver) | |
| + | | **Author** | FilaMan | |
| + | | **Connection** | HTTP REST API + WebSocket | |
| + | | **Capabilities** | Inventory sync, AMS slot display, consumption reporting, online/offline detection | |
| + | |
| + | --- |
| + | |
| + | ## Prerequisites |
| + | |
| + | - A running **Bambuddy server** accessible over the network |
| + | - A valid **API key** from the Bambuddy settings |
| + | - The **Printer ID** of the Bambu printer in Bambuddy (found in the Bambuddy web interface) |
| + | |
| + | --- |
| + | |
| + | ## Configuration |
| + | |
| + | When adding or editing a Bambuddy printer, the plugin shows the following configuration fields: |
| + | |
| + | | Field | Required | Description | |
| + | |-------|----------|-------------| |
| + | | **Bambuddy URL** | Yes | Full URL of the Bambuddy server (e.g. `http://192.168.1.100:8080`) | |
| + | | **API Key** | Yes | API key from the Bambuddy settings (Bambuddy → Settings → API) | |
| + | | **Printer ID** | Yes | Printer ID in Bambuddy (numeric, visible in the Bambuddy printer overview) | |
| + | | **Sync Interval** | No | Interval in seconds for automatic inventory sync (default: 300 = 5 minutes) | |
| + | | **Reconnect Interval** | No | Wait time in seconds before reconnecting after a connection loss (default: 30) | |
| + | |
| + | --- |
| + | |
| + | ## How Does Synchronization Work? |
| + | |
| + | The plugin keeps the **Bambuddy inventory** up to date automatically — FilaMan is the single source of truth. |
| + | |
| + | ### When Is a Sync Triggered? |
| + | |
| + | | Trigger | Behavior | |
| + | |---------|----------| |
| + | | **On plugin start** | Full inventory sync of all active FilaMan spools | |
| + | | **Periodically** | Automatically every `Sync Interval` seconds (default: every 5 minutes) | |
| + | | **On FilaMan changes** | Immediate sync within 3 seconds of any data change (spool created, weight updated, filament changed, etc.) | |
| + | |
| + | ### How Are Spools Linked? |
| + | |
| + | Every spool created in Bambuddy receives the value `filaman:{id}` (e.g. `filaman:42`) in its **"Note"** field. This key is the unique link between a FilaMan spool and a Bambuddy inventory entry. When the same FilaMan spool is synced again, the plugin updates the existing Bambuddy entry instead of creating a new one. |
| + | |
| + | --- |
| + | |
| + | ## What Gets Synchronized? |
| + | |
| + | On every sync, the plugin transfers the following information from FilaMan to Bambuddy: |
| + | |
| + | | FilaMan Field | Bambuddy Field | Description | |
| + | |---|---|---| |
| + | | `filament.material_type` | Material | Material type (PLA, PETG, ABS …) | |
| + | | `filament.manufacturer.name` | Brand | Manufacturer | |
| + | | `filament.colors[0].hex_code` | Color (RGBA) | Primary color of the spool | |
| + | | `initial_total_weight_g` | Label weight | Original total weight | |
| + | | `initial – remaining` | Weight used | Filament already consumed | |
| + | | `rfid_uid` | RFID tag | Transferred if present | |
| + | | `bambu_nozzle_temp_min/max` | Nozzle temperatures | From printer parameters | |
| + | |
| + | --- |
| + | |
| + | ## Consumption Reporting After Printing |
| + | |
| + | The plugin maintains a **WebSocket connection** to the Bambuddy server. When a print job completes, Bambuddy sends a `print_complete` event containing filament consumption per AMS slot. The plugin automatically deducts this consumption from the corresponding FilaMan spool — no manual input required. |
| + | |
| + | > **Prerequisite:** The spool must be assigned to an AMS slot before the print (see [AMS Slot Assignment](#ams-slot-display-and-assignment)). |
| + | |
| + | --- |
| + | |
| + | ## AMS Slot Display and Assignment |
| + | |
| + | After a successful connection, FilaMan shows all AMS slots and their current contents on the **printer page** and the **spool detail page**. The display updates in **real time** via WebSocket. |
| + | |
| + | ### Online/Offline Status |
| + | |
| + | If the Bambu printer is **unreachable** (reported as offline by Bambuddy), **no trays** are shown for this printer on the spool detail page. As soon as the printer comes back online, the slots appear automatically. |
| + | |
| + | ### Assigning a Spool to a Slot |
| + | |
| + | On the **spool detail page**, you can assign a spool directly to an AMS slot in Bambuddy: |
| + | |
| + | 1. Click on a slot dot in the printer slot overview |
| + | 2. Select **"Assign spool to this slot"** from the context menu |
| + | 3. Bambuddy assigns the spool to the slot and automatically configures material, color, and temperatures |
| + | |
| + | --- |
| + | |
| + | ## Sync Actions |
| + | |
| + | Two manual sync actions are available on the **printer detail page**: |
| + | |
| + | | Action | Description | |
| + | |--------|-------------| |
| + | | **Sync Now** | Triggers an immediate inventory sync (FilaMan → Bambuddy) | |
| + | | **Full Resync** | Deletes **all** Bambuddy inventory spools and re-syncs the entire FilaMan stock from scratch. Useful when the Bambuddy inventory has become inconsistent due to external changes. ⚠️ Do not run during active print jobs. | |
| + | |
| + | --- |
| + | |
| + | ← [Back: Plugin: Spoolman API](/Docs/En/16-Plugin-Spoolmanapi) |