Description
n8n-nodes-bambulab
This is an n8n community node package for controlling and monitoring Bambu Lab printers over the local network.
Bambu Lab is a 3D printer platform. This package communicates with the printer directly via local MQTT (no Bambu Cloud required).
Installation
Operations
Credentials
Compatibility
Usage
Resources
Installation
Follow the n8n community nodes installation guide and search for @hanna84/n8n-nodes-bambulab.
For local development with the included Docker setup:
npm install
npm run build
docker compose up -dAfter code changes:
npm run build
docker compose restart n8n
n8n is available at http://localhost:5678.
Operations
Node: Bambu Lab Printer
An action node for on-demand operations.
| Operation | Description |
| ———- | ——————————————- |
| Get Status | Request a full status push from the printer |
Response mode (Get Status):
- Summary — Normalized status object with named fields (temperatures, progress, state, etc.)
- Raw — Full raw MQTT payload from the printer
Node: Bambu Lab Printer Trigger
A trigger node for event-driven workflows. Maintains a persistent MQTT connection and polls the printer on a configurable interval.
| Parameter | Description |
| ———————– | —————————————————————————- |
| Poll Interval (seconds) | How often to request fresh status from the printer (minimum 5s, default 30s) |
| Response Mode | Summary — normalized fields. Raw — full MQTT payload |
| Filter Mode | Controls when events are emitted (see below) |
Filter modes:
| Mode | Behaviour |
| ——————————– | ————————————————————————————————- |
| Any Field Change (default) | Emits a full snapshot on startup, then fires again whenever a watched field crosses its threshold |
| Printer State Only | Fires only when gcode_state changes (e.g. IDLE → RUNNING → FINISH) |
| Every Message | Fires on every MQTT message received — use with care |
Any Field Change options (shown when that mode is selected):
| Parameter | Default | Description |
| ————————– | ——————————————- | ——————————————————————————————- |
| Trigger On Fields | State, Stage, Layer, Progress, Temps, Error | Checklist of which fields can trigger an event. All fields appear in the output regardless. |
| Layer Change Threshold | 1 | Minimum layers between events |
| Progress Threshold (%) | 5 | Minimum % progress change between events |
| Temperature Threshold (°C) | 2 | Minimum °C change for actual temps (nozzle, bed, chamber) |
| Target Temp Threshold (°C) | 1 | Minimum °C change for target temperatures |
Output fields (in Summary mode) include: state, stage, progresspct, currentlayer, totallayers, nozzletempc, bedtempc, nozzletargetc, bedtargetc, chambertempc, taskname, errorcode, speedlevel, chamberlight, wifisignal, received_at, and more.
In Any Field Change mode the output also includes a triggered_by object showing which fields changed and their before/after values — useful for debugging unexpected events:
"triggered_by": {
"current_layer": { "from": 20, "to": 25 },
"progress_pct": { "from": 23, "to": 28 }
}
Credentials
Credential type: Bambu Lab (Local Network)
| Field | Description |
| ——————— | ————————————————– |
| Printer IP Address | Local IP of the printer |
| Printer Serial Number | Uppercase alphanumeric serial (e.g. 01P00C5A...) |
| Access Code | 8-character access code |
Where to find these on the printer touchscreen:
Security notes:
Compatibility
n8nio/n8n:2.13.4Known behavior:
Usage
Example: Print complete notification
1. Add a Bambu Lab Printer Trigger node
2. Set Filter Mode to Printer State Only
3. Connect an IF node: condition state equals FINISH
4. Connect a Telegram (or other) node to send a notification
Example: Layer progress updates
1. Add a Bambu Lab Printer Trigger node
2. Leave Filter Mode as Any Field Change
3. Set Layer Change Threshold to 10 (fires every 10 layers)
4. Uncheck all Trigger On Fields except Current Layer
5. Use currentlayer and totallayers in your downstream nodes
Example: Debugging unexpected events
If the trigger fires more often than expected, check the triggeredby field in the output — it shows exactly which field crossed its threshold (e.g. { "progresspct": { "from": 23, "to": 28 } }). Uncheck that field in Trigger On Fields or raise its threshold.
Included workflow templates
workflows/bambulab-showcase.workflow.json — manual status check and raw command exampleImport:
docker compose exec n8n n8n import:workflow
--input=/custom-extensions/my-custom-node/workflows/bambulab-showcase.workflow.json
After importing, open the workflow in n8n and re-select your Bambu Lab Local credential on each node.
Resources
Changelog
See CHANGELOG.md for the full release history.