Skip to content

A MagicMirror² module that provides real-time notifications and status updates from your Bambu Lab printer (tested with A1). It connects to the printer’s local MQTT broker and shows toast notifications and a status panel for print events like started, paused, resumed, canceled, finished, and error states.

License

Notifications You must be signed in to change notification settings

LuckyDuckTx/MMM-BambuLabNotify

Repository files navigation

MMM-BambuLabNotify

MagicMirror² Module Version License

A MagicMirror² module that provides real-time notifications and status updates from your Bambu Lab printer (tested with A1, should also work with A1 Mini, X1 and P1 series).

It connects to the printer’s local MQTT broker and shows toast notifications and a status panel for print events like started, paused, resumed, canceled, finished, and error states.


✨ Features

  • 📡 Real-time printer status via MQTT over TLS
  • 🔔 Toast notifications for:
    • Print started
    • Print paused
    • Print canceled
    • Print finished
    • Error conditions
  • 📊 Inline status panel:
    • Current state (Idle, Preparing, Printing, Paused, Canceled, Error, Finished)
    • Job progress bar (%)
    • Layer countdown
    • Current file name

Screenshots

screenshot

Toast Messages

started

complete

canceled

Panel display

preparing

printing

paused

finished


📦 Installation

To install in MagicMirror modules folder:

cd ~/MagicMirror/modules
git clone https://github.com/LuckyDuckTx/MMM-BambuLabNotify.git
cd MMM-BambuLabNotify
npm install

🛠️ Update

Need to update your BambuLabNofity module?

cd ~/MagicMirror/modules/MMM-BambuLabNotify
git pull
npm install

⚙️ Configuration

Add the Module to config.js:

  • 🔑 Getting your credentials

    • IP Address: Found in your Bambu printer’s settings (Settings > Lan Only section).
    • Access Code: Found in your Bambu printer’s settings (Settings > Lan Only section).
    • Serial Number: Printed on your printer label and in Bambu Studio (under > Device > Update ), or in the Bambu Handy app (Settings > Firmware Version).
  • Edit your MagicMirror/config/config.js file and add the following configuration:

{
  module: "MMM-BambuLabNotify",
  position: "bottom_right",
  config: {
    printerName: "BambuLab A1", 
    host: "192.168.x.xxx",          // Printer IP address
    password: "YOUR-ACCESS-CODE",   // Access Code from printer
    serial: "YOUR-PRINTER-SERIAL",  // Serial Number from printer

    // Toast Message options
    toastDurationMs: 60000, 
    toastStyle: "Modal",
    showOnStart: true,
    showOnDone: true,
    showOnError: true,
    showOnPause: true,
    showOnIdle: true, 
    showOnCancel: true,
    hideWhileOff: false,
    hideWhileIdle: false
  }
}

Configuration Options

Option Type Default Description
printerName String BambuLab Printer Name shown in the panel and toasts.
host String 127.0.0.1 IP Address - Found in your Bambu printer’s settings (Settings > Lan Only section).
password String Access Code - Found in your Bambu printer’s settings (Settings > Lan Only section).
serial String Serial Number - Printed on your printer label and in the Bambu Handy app (Settings > Firmware Version).
** Toasts Messages **
toastDurationMs Number 60000 How long toast notifications remain visible (milliseconds).
toastStyle String modal Where the toast messages display. "modal" (center + overlay) or "corner" (top-right)
showOnStart Boolean true Show Toast while connecting
showOnDone Boolean true Show Toast when print is finished
showOnError Boolean true Show Toast when an error or cancel occurs
showOnIdle Boolean true Show Toast when printer becomes idle
showOnPause Boolean true Show Toast when printer is paused
showOnCancel Boolean true Show Toast when print is canceled
hideWhileOff Boolean false Hide status when the printer is offline
hideWhileIdle Boolean false Hide status when the printer is idle
** Advanced Settings ** You shouldn't need to change these unless you're debugging
port Number 8883 MQTT Port on printer
user String bblp MQTT user on printer
idleAfterCancelMs Number 60000 Time after cancel before panel resets to Idle (milliseconds).
progressStep Number 5 Bucket size for progress updates. Example: 5 → updates at 0%, 5%, 10% …
debounceMs Number 15000 Minimum time between identical toast notifications (prevents spam).
logRaw Boolean false If true, logs every raw MQTT message to console (very noisy).
logOnChange Boolean false Logs only when state changes (recommended for debugging).
idleTimeoutMs Number 120000 Auto-reset to idle if no messages received for this duration (ms).
doneQuietWindowMs Number 120000 Suppresses ghost finish/error events if printer hasn’t been recently active (helps after reconnects).
assumeIdleAfterMs Number 8000 Fallback: if nothing arrives after connect, assume Idle to clear “Connecting…” state.

🛠 Notes

  • Works locally on LAN only - MagicMirror and Printer must be on same LAN.
  • Printer does not need to be in LAN Only Mode.
  • Tested with Bambu Lab A1 (Aug 2025 firmware version 01.06.00.00).
  • All state changes and notifications are logged.

License

This project is licensed under the MIT License.


Credits

  • Created using ChatGPT 5.0 (OpenAI)
  • Module inspired and tested by LuckyDuckTx.

About

A MagicMirror² module that provides real-time notifications and status updates from your Bambu Lab printer (tested with A1). It connects to the printer’s local MQTT broker and shows toast notifications and a status panel for print events like started, paused, resumed, canceled, finished, and error states.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published