Racks & WattsLOCAL HARDWARE / CLEAR PICKS

3D printing

Monitor your 3D printer in Home Assistant: Bambu, Klipper and OctoPrint

Connect Bambu, Klipper or OctoPrint to Home Assistant for print alerts, temperatures and camera views. Choose host parts and plan cooldown before plug-off.

An unbranded printer on a warm workbench beside a wall tablet showing an abstract progress ring.

OUR PICKS / YOUR SETUP

Find your fit.

Use Bambu or Moonraker through community HACS integrations, or the official OctoPrint integration. Start with finish/error notifications and a camera dashboard; make optional plug-off wait for confirmed cooldown.

  • Bambu + MoonrakerCommunity / HACS
  • OctoPrintOfficial integration
  • Power-off ruleCool first

How we evaluate hardware.

Your printer can tell you the bracket is finished before you wander back to the bench. Put its progress, temperatures and camera in Home Assistant, add a phone alert, and let a nearby light celebrate the last layer. Start with monitoring; add power control after you have watched a full cooldown.

This research guide uses the integration projects’ documentation and maker specifications, checked October 29, 2026.

The useful setup: keep the printer’s own control system, connect it to Home Assistant, and add a Shelly Plug US Gen4 for local power readings. Use HA Green for a dedicated dashboard host, or build the complete Pi 5 host below. A USB camera belongs on the compatible Klipper/OctoPrint host when the printer lacks a feed.

Choose the integration that matches the printer

Printer route Home Assistant integration Useful monitoring Control and camera fit
Bambu Lab Community ha-bambulab, installed through HACS Print progress, remaining time, actual/target nozzle and bed temperatures, status and errors Pause/resume/stop depend on firmware and connection mode; camera setup varies by model
Klipper with Moonraker Community Moonraker integration through HACS Current print state, progress/time estimates, actual/target extruder and bed temperatures Pause Print, Resume Print, Cancel Print and configured camera feed
OctoPrint Official Home Assistant OctoPrint integration Printing, Print Error, completed percentage, estimated finish time and actual/target tool/bed temperatures Pause Job, Resume Job, Stop Job; camera when configured in OctoPrint

These integrations connect the printer system you already have. They don’t convert Bambu firmware into Klipper or turn a USB printer into an OctoPrint server. For that choice, use the printer-without-cloud guide.

Bambu: monitoring and control are different permissions

ha-bambulab is a community project, not an official Bambu or Home Assistant core integration. Its current authorization guidance says sensor reading continues under the restricted firmware, while most write actions stop working when the printer remains cloud-connected. To restore those controls on affected firmware, use LAN-only plus Developer LAN Mode. That removes Bambu Cloud connectivity, including Handy’s remote features.

Follow Bambu’s LAN-only and Developer Mode instructions for your model. Developer Mode opens local interfaces for third-party control; keep access limited to your trusted local network.

The project’s setup page covers local camera settings and model-specific metadata. Some newer printers, including P2S, need external storage and Store Sent Files on External Storage for richer print-file data. Start with the status and temperature entities you actually see; add cover images later.

Klipper and OctoPrint: use their existing servers

The Moonraker integration is also a community HACS integration. It connects to the Moonraker server alongside Klipper, Mainsail or Fluidd. Its sensor reference separates printer state from current print state—use the latter for job automations.

For the official OctoPrint integration, add OctoPrint in Settings → Devices & services → Add integration. Log into OctoPrint as the same user you supplied during setup and approve the application-key Allow prompt. Keep those credentials private.

The host, meter and camera parts list

Choose one Home Assistant host: Green if you want to skip the hardware setup, or Pi 5 for a low-power host with GPIO. Green includes its power supply and storage; the Pi option needs the complete NVMe kit below.

Job Part Why it belongs
Dedicated HA host Home Assistant Green Ready-to-run Home Assistant hardware; keep your existing printer server
Build your HA host Raspberry Pi 5 8GB Board for the complete NVMe build
Pi power Official Raspberry Pi 27W USB-C PSU Official 5.1 V, 5 A supply
Pi cooling Raspberry Pi Active Cooler Fits beneath the standard M.2 HAT+
NVMe adapter Raspberry Pi M.2 HAT+ Standard version for 2230/2242 drives, not 2280
Pi boot storage Kingston NV3 500GB 2230, SNV3SM3/500G Short NVMe SSD for the HAT+
Open case base Official Pi 5 case Use with its lid and supplied fan removed for this standard HAT+ stack
One-box case alternative Argon ONE V3 M.2 NVMe case Its NVMe board and cooling replace the separate HAT+, Active Cooler and official case; keep the Pi, PSU and SSD
Local power readings Shelly Plug US Gen4 Native local integration for power/energy and controlled switching
Optional print view Logitech C270 USB webcam Fixed-focus USB-A camera for a compatible printer-host camera setup

Add an Ethernet connection for the HA host. Raspberry Pi’s HAT+ documentation covers the stack and case fit; Kingston’s datasheet identifies the 2230 SSD. Argon documents its integrated adapter and cooling.

Follow the complete Pi 5 NVMe build for installation and the Argon fan/control trade-offs on HA OS. The Pi 5 buying guide compares the hardware routes.

Keep the HA host and printer server on independent power, outside the printer’s switched plug. Green runs Home Assistant; it doesn’t replace the Klipper/OctoPrint host or automatically turn a USB webcam into a network stream.

Connect it, then build a small entity checklist

For Bambu or Moonraker, download the integration through HACS, restart Home Assistant, then add it under Settings → Devices & services. Use the projects’ Bambu installation or Moonraker installation instructions for connection details.

Open the printer device and find:

  • Job status and progress.
  • Remaining time, or OctoPrint’s estimated finish timestamp.
  • Actual nozzle/tool and bed temperatures, alongside their targets.
  • The camera, if the printer host has one configured.
  • A working pause control, if you plan to use it.

The Bambu entity list shows model differences. Moonraker’s camera setup uses the printer host’s configured stream; OctoPrint exposes its configured camera. Put the C270 on that compatible host and establish the feed there first. Keep its cable clear of the bed and gantry.

Make the last layer ring your phone

Create an automation in Settings → Automations & scenes. Pick the printer’s event or state trigger, then use your phone’s notify.mobile_app_… action. The Companion notification guide explains that action.

Choose a trigger that says what happened:

  • Bambu: use the documented Print finished device trigger. Add separate Print error detected and HMS error detected notifications. Its Print failed trigger is X1-only; cancellation has its own event.
  • Moonraker: use State changed on Current Print State, with complete for success and error for failure. Treat cancelled separately.
  • OctoPrint: Printing changing from on to off can send “Printer stopped—check the job.” Use Print Error turning on for the error alert. Printing off alone also covers cancellation, so don’t label it “success.”

Bambu’s device-trigger reference documents those event differences. For state triggers, use Home Assistant’s current State changed editor. A useful message is short: what happened, which printer, and a link to your printer dashboard.

Let it cool before the plug goes off

Start with the Shelly integration for local readings. Match the printer’s peak load to the plug’s ratings; follow the enclosure and power guide for placement and measuring the heater load.

Make the first version a “cooled down” notification. After observing it through an attended print, optional automatic plug-off can use this sequence:

  1. Start only from a confirmed completed job, with an explicit auto-off enable helper. Leave cancelled/error jobs for inspection; OctoPrint’s generic Printing-off notification isn’t this trigger.
  2. Use Wait for a template to require valid, live actual nozzle temperatures below the maker-approved cooldown threshold, plus the maker’s bed/chamber/fan cooldown requirements. Include every heated tool; require heater targets off and no drying cycle or active print.
  3. Cancel that run if another job starts, the printer disconnects, readings become invalid, or a timeout expires. In the wait step, turn Continue on timeout off.
  4. Immediately before Switch: Turn off, recheck completion, temperatures, connection and the enable helper. If you can’t establish those conditions, keep power on and send a notification instead.

Put the cooldown wait and switch action in a separate script. An interruption automation can call Script: Turn off script when a new job starts, an error/cancellation arrives, the enable helper turns off or a required entity becomes unavailable.

Wait for a template checks a condition that’s already true, so it handles a printer that has cooled before the sequence reaches the wait. Don’t rely on a fresh temperature crossing. There is no universal nozzle cutoff here: use your printer’s shutdown procedure, and never turn unknown readings into zero. Low watts alone doesn’t confirm cooldown.

Flash a light; keep alarm actions a backstop

Add a light action to the finish notification. Home Assistant’s light integration offers flash on supported lights; otherwise call a simple “print ready” scene on a light you already own.

If a smoke alarm already exposes a working smoke-detected entity in HA, send an alert first, then call a supported pause control: Pause Job for OctoPrint, Pause Print for Moonraker, or Bambu Pause when write controls are available. An ordinary standalone alarm can’t supply that HA trigger.

This is a backstop, not a replacement for the smoke alarm, supervision or the printer’s thermal protection; pause commands can leave heaters energized. Keep smoke handling separate from the finished-job plug-off routine.

One dashboard you will actually open

Use a Picture glance card for the configured camera, with status and pause icons. Put progress and time alongside it, temperatures with their targets underneath, and a Shelly power-history graph below that. Leave the raw power-off switch out of the camera card’s easy-to-tap controls.

Test notification delivery with Run actions, then test the real finish trigger with a small attended print. Check error-message delivery through a temporary test automation rather than creating a heater fault. Run cooldown in notification-only mode first, including a disconnected-printer check that must leave the plug on. Use automation traces and troubleshooting to inspect the path taken.

Explore the 3D printing hub for the printer side and the Home Assistant hub for the dashboard side. The goal is pleasantly simple: fewer trips to check a progress bar, a useful ping when it’s done, and fans that get to finish their job.

Sources & methodology

Where these facts come from.

Source dates are listed above.

As an Amazon Associate I earn from qualifying purchases.

Parts from this article

The gear, on Amazon

The models recommended above, with the specifications that matter for your choice.

Best tinkerer pick

Shelly Plug US Gen4 (white)

Use Shelly’s local integration for power readings, then explore MQTT and on-device scripts.

Local APIPower + energyMQTT + scripts
Check price on Amazon →

Ready-to-run host

Home Assistant Green

Start with Green when you want a dedicated Home Assistant host.

Home Assistant OS4 GB RAM32 GB eMMC
Check price on Amazon →

The board

Raspberry Pi 5 8GB

Quad-core Pi 5 with Gigabit Ethernet, PCIe for NVMe and USB ports for connected hardware.

BCM2712 2.4 GHz8 GB LPDDR4XPCIe 2.0 x1
Check price on Amazon →

Power

Raspberry Pi 27W USB-C Power Supply

The official 5.1 V 5 A supply for a Pi 5 driving an SSD and USB devices.

5.1 V 5 AUSB-C PD
Check price on Amazon →

Cooling

Raspberry Pi Active Cooler

Clip-on heatsink and temperature-controlled fan; the M.2 HAT+ stacks above it.

Aluminium heatsinkTemperature-controlled fan
Check price on Amazon →

NVMe adapter

Raspberry Pi M.2 HAT+

Connects a 2230 or 2242 NVMe SSD to the Pi 5 PCIe connector.

PCIe 2.02230/2242Fits over Active Cooler
Check price on Amazon →

The SSD

Kingston NV3 500GB M.2 2230 NVMe SSD (SNV3SM3/500G)

A 2230 NVMe drive that fits the M.2 HAT+ and the Argon case.

500 GBM.2 2230NVMe
Check price on Amazon →

Official case base

Official Raspberry Pi 5 case

Use the base for a standard M.2 HAT+ stack with the lid and supplied case fan removed.

Pi 5 caseIncluded fanCompact HAT+ fits
Check price on Amazon →

Closed-case option

Argon ONE V3 M.2 NVMe case for Raspberry Pi 5

Aluminium case with its own NVMe board, fan and power button, for drives up to 2280.

M.2 up to 2280Blower fanPower button
Check price on Amazon →

Simple USB print view

Logitech C270 USB webcam (960-000694)

Aim the fixed-focus USB camera at the bed for a local print-viewing feed.

720p maker ratingUSB-AFixed focus
Check price on Amazon →

Prepared by Racks & Watts.