Bambu Lab
Suivez la progression de vos impressions 3D avec le nombre de couches, la température de la buse et le temps restant sur votre Lock Screen via MQTT local.

How It Works
The pushward-bambulab bridge connects directly to your printer over local MQTT (no cloud dependency) and streams print progress to PushWard.
- MQTT connection -- connects to printer on port 8883 using TLS with the printer's access code
- State tracking -- subscribes to printer reports and merges delta updates into a full state
- Progress updates -- sends layer count, nozzle temperature, and progress bar to PushWard every 5s (configurable)
- Lifecycle management -- automatically starts tracking when a print begins and ends when it finishes, fails, or is cancelled
Setup
1. Enable Developer Mode
On your Bambu Lab printer, enable Developer Mode (or LAN-only mode) in the printer settings. This allows local MQTT connections.
2. Get the Access Code
Navigate to Settings > WLAN on the printer to find the 8-character access code.
3. Get Your Integration Key
Ouvrez l'application PushWard → Réglages → Clé d'intégration pour trouver votre clé hlk_ par défaut.
Pour créer une clé dédiée à cette intégration :
- Allez dans Réglages → Gérer les clés
- Appuyez sur +
- Définissez un nom (par ex. « Bambu Lab »), choisissez , comme portée, et restreignez éventuellement aux
bambu-* - Copiez la clé
hlk_générée
4. Deploy the Bridge
services:
pushward-bambulab:
image: ghcr.io/mac-lucky/pushward-bambulab:latest
environment:
PUSHWARD_URL: https://api.pushward.app
PUSHWARD_API_KEY: hlk_YOUR_INTEGRATION_KEY
PUSHWARD_BAMBULAB_HOST: 192.168.1.100
PUSHWARD_BAMBULAB_ACCESS_CODE: 12345678
PUSHWARD_BAMBULAB_SERIAL: 01S00A123456789
restart: unless-stoppedNo ports need to be exposed -- the bridge connects outbound to both the printer (MQTT) and PushWard API.
Configuration
| Variable d'environnement | Description | Valeur par défaut |
|---|---|---|
PUSHWARD_URL | PushWard server URL | -- |
PUSHWARD_API_KEY | Integration key (hlk_ prefix) | -- |
PUSHWARD_BAMBULAB_HOST | Printer IP address or hostname | -- |
PUSHWARD_BAMBULAB_ACCESS_CODE | 8-character access code from printer Settings > WLAN | -- |
PUSHWARD_BAMBULAB_SERIAL | Printer serial number (15 characters) | -- |
PUSHWARD_BAMBULAB_CERT_FINGERPRINT | Optional SHA-256 fingerprint of the printer cert (hex, with or without : separators). Pins TLS to that exact cert. When unset, the bridge auto-pins on first connect (TOFU). | -- |
PUSHWARD_POLL_INTERVAL | How often to send progress updates | 5s |
PUSHWARD_PRIORITY | Activity priority (0-10) | 1 |
PUSHWARD_CLEANUP_DELAY | How long the activity stays after ending | 15m |
PUSHWARD_STALE_TIMEOUT | Ends activity if no updates received | 60m |
To pin explicitly up front (recommended for hardened setups), extract the printer's SHA-256
fingerprint from a trusted network and set PUSHWARD_BAMBULAB_CERT_FINGERPRINT:
openssl s_client -connect <printer-ip>:8883 -servername <printer-ip> </dev/null \
| openssl x509 -fingerprint -sha256 -nooutRun this on a network you trust — TOFU (auto-pin on first connect) and ad-hoc fingerprint
extraction are both only as trustworthy as the network at extraction time. openssl will print "verify error" lines for the printer's self-signed cert; those are expected and the
fingerprint output below is still valid. The fingerprint changes any time the printer regenerates
its cert (e.g. after a factory reset).
Print States
| Printer State | Live Activity | Color |
|---|---|---|
PREPARE | Preparing... | Blue |
RUNNING | Layer N/M | Blue |
PAUSE | Paused | Orange |
FINISH | Complete | Green |
FAILED | Failed | Red |
The bridge automatically resumes tracking if it starts while a print is already in progress, so it recovers gracefully from restarts.
Activity Slug Format
Uses the format bambu-<serial> (serial lowercased), e.g. bambu-01s00a123456789. One activity per printer.