@hanna84/n8n-nodes-bambulab
v1.4.2
Published
n8n community node for controlling and monitoring Bambu Lab 3D printers over the local network via MQTT
Downloads
1,283
Readme
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 -d
# After code changes:
npm run build
docker compose restart n8nn8n 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, progress_pct, current_layer, total_layers, nozzle_temp_c, bed_temp_c, nozzle_target_c, bed_target_c, chamber_temp_c, task_name, error_code, speed_level, chamber_light, wifi_signal, 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:
- Settings > Network / WLAN — IP address and Access Code
- Settings > Device — Serial number
Security notes:
- Credentials are stored encrypted by n8n and never written into workflow JSON as plaintext.
- MQTT traffic is TLS-encrypted on port 8883.
- Certificate verification is disabled for local printer TLS (Bambu printers use a private CA).
- Do not expose printer network endpoints to the public internet.
Compatibility
- Minimum tested n8n version: 2.13.4
- Tested on: Docker image
n8nio/n8n:2.13.4 - Tested printers: Bambu Lab X1C, P1S (reports from community welcome)
Known behavior:
- Imported workflows require credentials to be re-selected once in the UI to bind local credential IDs.
- The Bambu MQTT broker is point-to-point — report messages are only delivered to the requesting client, not broadcast. This is why the trigger node sends its own PUSH_ALL request rather than passively subscribing.
- Bambu printers allow only one MQTT client at a time. If another device connects to the printer while the trigger node is running, the node will be disconnected. It reconnects automatically within a few seconds and resumes polling, but any events that occurred during the reconnect window will be missed.
Usage
Example: Print complete notification
- Add a Bambu Lab Printer Trigger node
- Set Filter Mode to Printer State Only
- Connect an IF node: condition
stateequalsFINISH - Connect a Telegram (or other) node to send a notification
Example: Layer progress updates
- Add a Bambu Lab Printer Trigger node
- Leave Filter Mode as Any Field Change
- Set Layer Change Threshold to
10(fires every 10 layers) - Uncheck all Trigger On Fields except Current Layer
- Use
current_layerandtotal_layersin your downstream nodes
Example: Debugging unexpected events
If the trigger fires more often than expected, check the triggered_by field in the output — it shows exactly which field crossed its threshold (e.g. { "progress_pct": { "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 example
Import:
docker compose exec n8n n8n import:workflow \
--input=/custom-extensions/my-custom-node/workflows/bambulab-showcase.workflow.jsonAfter importing, open the workflow in n8n and re-select your Bambu Lab Local credential on each node.
Resources
- n8n community nodes documentation
- Bambu Lab
- ha-bambulab — acknowledged reference for MQTT topic/payload structure
Changelog
See CHANGELOG.md for the full release history.
