Blame
|
1 | # Plugin: Bambuddy |
||||||
| 2 | ||||||||
| 3 | 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. |
|||||||
| 4 | ||||||||
| 5 | **Installation:** → [Admin: Plugin Management](/Docs/En/11-Admin#115-system-plugin-management) |
|||||||
| 6 | ||||||||
| 7 | --- |
|||||||
| 8 | ||||||||
| 9 | ## Overview |
|||||||
| 10 | ||||||||
| 11 | | Property | Value | |
|||||||
| 12 | |----------|-------| |
|||||||
| 13 | | **Plugin Type** | Driver (Printer Driver) | |
|||||||
| 14 | | **Author** | FilaMan | |
|||||||
| 15 | | **Connection** | HTTP REST API + WebSocket | |
|||||||
| 16 | | **Capabilities** | Inventory sync, AMS slot display, consumption reporting, online/offline detection | |
|||||||
| 17 | ||||||||
| 18 | --- |
|||||||
| 19 | ||||||||
| 20 | ## Prerequisites |
|||||||
| 21 | ||||||||
| 22 | - A running **Bambuddy server** accessible over the network |
|||||||
| 23 | - A valid **API key** from the Bambuddy settings |
|||||||
| 24 | - The **Printer ID** of the Bambu printer in Bambuddy (found in the Bambuddy web interface) |
|||||||
| 25 | ||||||||
| 26 | --- |
|||||||
| 27 | ||||||||
| 28 | ## Configuration |
|||||||
| 29 | ||||||||
| 30 | When adding or editing a Bambuddy printer, the plugin shows the following configuration fields: |
|||||||
| 31 | ||||||||
| 32 | | Field | Required | Description | |
|||||||
| 33 | |-------|----------|-------------| |
|||||||
| 34 | | **Bambuddy URL** | Yes | Full URL of the Bambuddy server (e.g. `http://192.168.1.100:8080`) | |
|||||||
| 35 | | **API Key** | Yes | API key from the Bambuddy settings (Bambuddy → Settings → API) | |
|||||||
| 36 | | **Printer ID** | Yes | Printer ID in Bambuddy (numeric, visible in the Bambuddy printer overview) | |
|||||||
| 37 | | **Sync Interval** | No | Interval in seconds for automatic inventory sync (default: 300 = 5 minutes) | |
|||||||
| 38 | | **Reconnect Interval** | No | Wait time in seconds before reconnecting after a connection loss (default: 30) | |
|||||||
| 39 | ||||||||
| 40 | --- |
|||||||
| 41 | ||||||||
| 42 | ## How Does Synchronization Work? |
|||||||
| 43 | ||||||||
| 44 | The plugin keeps the **Bambuddy inventory** up to date automatically — FilaMan is the single source of truth. |
|||||||
| 45 | ||||||||
| 46 | ### When Is a Sync Triggered? |
|||||||
| 47 | ||||||||
| 48 | | Trigger | Behavior | |
|||||||
| 49 | |---------|----------| |
|||||||
| 50 | | **On plugin start** | Full inventory sync of all active FilaMan spools | |
|||||||
| 51 | | **Periodically** | Automatically every `Sync Interval` seconds (default: every 5 minutes) | |
|||||||
| 52 | | **On FilaMan changes** | Immediate sync within 3 seconds of any data change (spool created, weight updated, filament changed, etc.) | |
|||||||
| 53 | ||||||||
| 54 | ### How Are Spools Linked? |
|||||||
| 55 | ||||||||
| 56 | 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. |
|||||||
| 57 | ||||||||
| 58 | --- |
|||||||
| 59 | ||||||||
| 60 | ## What Gets Synchronized? |
|||||||
| 61 | ||||||||
| 62 | On every sync, the plugin transfers the following information from FilaMan to Bambuddy: |
|||||||
| 63 | ||||||||
| 64 | | FilaMan Field | Bambuddy Field | Description | |
|||||||
| 65 | |---|---|---| |
|||||||
| 66 | | `filament.material_type` | Material | Material type (PLA, PETG, ABS …) | |
|||||||
| 67 | | `filament.manufacturer.name` | Brand | Manufacturer | |
|||||||
| 68 | | `filament.colors[0].hex_code` | Color (RGBA) | Primary color of the spool | |
|||||||
| 69 | | `initial_total_weight_g` | Label weight | Original total weight | |
|||||||
| 70 | | `initial – remaining` | Weight used | Filament already consumed | |
|||||||
| 71 | | `rfid_uid` | RFID tag | Transferred if present | |
|||||||
| 72 | | `bambu_nozzle_temp_min/max` | Nozzle temperatures | From printer parameters | |
|||||||
| 73 | ||||||||
| 74 | --- |
|||||||
| 75 | ||||||||
| 76 | ## Consumption Reporting After Printing |
|||||||
| 77 | ||||||||
| 78 | 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. |
|||||||
| 79 | ||||||||
| 80 | > **Prerequisite:** The spool must be assigned to an AMS slot before the print (see [AMS Slot Assignment](#ams-slot-display-and-assignment)). |
|||||||
| 81 | ||||||||
| 82 | --- |
|||||||
| 83 | ||||||||
| 84 | ## AMS Slot Display and Assignment |
|||||||
| 85 | ||||||||
| 86 | 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. |
|||||||
| 87 | ||||||||
| 88 | ### Online/Offline Status |
|||||||
| 89 | ||||||||
| 90 | 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. |
|||||||
| 91 | ||||||||
| 92 | ### Assigning a Spool to a Slot |
|||||||
| 93 | ||||||||
| 94 | On the **spool detail page**, you can assign a spool directly to an AMS slot in Bambuddy: |
|||||||
| 95 | ||||||||
| 96 | 1. Click on a slot dot in the printer slot overview |
|||||||
| 97 | 2. Select **"Assign spool to this slot"** from the context menu |
|||||||
| 98 | 3. Bambuddy assigns the spool to the slot and automatically configures material, color, and temperatures |
|||||||
| 99 | ||||||||
| 100 | --- |
|||||||
| 101 | ||||||||
| 102 | ## Sync Actions |
|||||||
| 103 | ||||||||
| 104 | Two manual sync actions are available on the **printer detail page**: |
|||||||
| 105 | ||||||||
| 106 | | Action | Description | |
|||||||
| 107 | |--------|-------------| |
|||||||
| 108 | | **Sync Now** | Triggers an immediate inventory sync (FilaMan → Bambuddy) | |
|||||||
| 109 | | **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. | |
|||||||
| 110 | ||||||||
| 111 | --- |
|||||||
| 112 | ||||||||
| 113 | ← [Back: Plugin: Spoolman API](/Docs/En/16-Plugin-Spoolmanapi) |
|||||||