
Turning a Bambu Lab 3D Printer into a Smart Home Device with Home Assistant
A modern 3D printer is already a surprisingly smart piece of equipment. It knows what it is printing, how far the print has progressed, which layer it is working on, how much filament is being used, and whether something has gone wrong.
So why not let Home Assistant make use of all that information?
After adding a Bambu Lab X2D Combo to Home Assistant, I quickly discovered that the printer exposes a lot more information than I initially expected. Even when using a cloud-based integration rather than a direct local connection, Home Assistant can turn the printer into another useful source of information for the smart home.
This opens up some interesting possibilities: progress notifications, print-finished messages, error alerts, ventilation control, temperature monitoring, and even maintenance reminders.
In this article, we will look at some of the information available from the printer and build a practical automation around it.
The Bambu Lab X2D Combo in Home Assistant
For this setup, I am using a Bambu Lab X2D Combo connected to Home Assistant through a cloud-based integration.
There are integrations that can communicate directly with Bambu Lab printers over the local network, but that requires changing some settings on the printer. For this project, I wanted to keep the existing setup and use the cloud integration instead.
The important thing is that a cloud connection does not necessarily mean that Home Assistant only gets basic information.
In my setup, the integration exposes a surprisingly large number of sensors.
Printer status and print progress
The most obvious sensors are the ones describing the current print.
Among the available entities are:
- Print status
- Print progress
- Current layer
- Total layer count
- Remaining time
- Start time
- End time
- Current stage
- Task name
- Printable objects
- Skipped objects
This is enough to build much more useful notifications than simply saying that the printer is running.
For example, Home Assistant can tell me that a print is currently at 63%, on layer 303 of 481, with approximately 40 minutes remaining.
The Task name entity is particularly useful because it allows notifications to identify the actual model being printed.
Instead of receiving:
3D printer is finished
I can get:
Bambu Lab X2D Combo has finished printing “Minimal Remote Caddy”.
Much more useful.
Filament information
The printer also provides information about the filament being used.
The Active Tray and Extruder Filament sensors can be used to determine what the printer is currently working with. The printer also reports the estimated print weight and filament length.
For example, a completed print in my setup can report:
- Print weight: 221.5 g
- Print length: 74.27 m
- Printable objects: 1
- Total layers: 481
- Skipped objects: 0
This information will become particularly interesting when combined with filament prices.
For example, if a spool of PETG costs €25 per kilogram, a 221.5 g print would use approximately €5.54 worth of filament.
That is something we can calculate in Home Assistant without needing any additional information from the printer.
Electricity consumption is a separate matter, however. For that, I would want an actual energy measurement from a smart plug rather than simply estimating the printer’s power consumption.
That will be a project for another article.
Temperature and fans
The printer also exposes several temperature and fan-related sensors.
These include:
- Bed temperature
- Bed target temperature
- Chamber temperature
- Chamber target temperature
- Nozzle temperature
- Nozzle target temperature
- Chamber fan speed
- Cooling fan speed
- Aux fan speed
- Heatbreak fan speed
This makes the printer much more interesting from a smart-home perspective.
For example, if the printer is located in a room with mechanical ventilation, Home Assistant can use the printer’s status and chamber temperature to decide when ventilation should run.
A simple setup could turn ventilation on whenever a print starts and keep it running for a few minutes after the print has completed.
A more advanced setup could use the actual chamber temperature. If the chamber gets above a defined temperature, Home Assistant could increase ventilation, and then turn it off again after the temperature has returned to normal.
Door and error monitoring
The integration also exposes diagnostic information such as:
- Door status
- HMS errors
- Print errors
- Online status
- Wi-Fi signal
- Firmware status
- SD card status
These are ideal for notifications.
For example, if the door is opened while a print is running, Home Assistant can send a warning.
Even more useful is monitoring Print error and HMS errors.
A normal print completion is something I can discover when I walk past the printer. A failed print is something I would much rather know about immediately.
The Skipped objects sensor is also interesting. If an object is skipped during a print, Home Assistant can notify me rather than allowing me to discover the missing part after several hours of printing.
A useful automation: print progress notifications
One of the first automations I wanted was a notification when a print reached 25%, 50% and 75%.
There is a small challenge here: the printer does not necessarily report every single percentage value. Therefore, simply triggering an automation when the progress sensor equals 25 is not particularly robust.
Instead, the automation can trigger when the progress reaches or passes a milestone and use helpers to remember which notifications have already been sent.
Here is a simplified example using the newer Home Assistant automation syntax:
alias: Bambu X2D - Print Progress
description: Notify at 25%, 50% and 75% print progress
triggers:
- trigger: numeric_state
entity_id: sensor.bambu_x2d_combo_print_progress
above: 24
id: progress_25
- trigger: numeric_state
entity_id: sensor.bambu_x2d_combo_print_progress
above: 49
id: progress_50
- trigger: numeric_state
entity_id: sensor.bambu_x2d_combo_print_progress
above: 74
id: progress_75
conditions:
- condition: state
entity_id: sensor.bambu_x2d_combo_print_status
state: "Printing"
actions:
- choose:
- conditions:
- condition: trigger
id: progress_25
sequence:
- action: notify.mobile_app_phone
data:
title: "🖨️ Bambu X2D Combo"
message: >
{{ states('sensor.bambu_x2d_combo_task_name') }}
is 25% complete.
- conditions:
- condition: trigger
id: progress_50
sequence:
- action: notify.mobile_app_phone
data:
title: "🖨️ Bambu X2D Combo"
message: >
{{ states('sensor.bambu_x2d_combo_task_name') }}
is 50% complete.
- conditions:
- condition: trigger
id: progress_75
sequence:
- action: notify.mobile_app_phone
data:
title: "🖨️ Bambu X2D Combo"
message: >
{{ states('sensor.bambu_x2d_combo_task_name') }}
is 75% complete.
The entity names above are examples and should be replaced with the actual entity IDs generated by your Bambu integration.
For a production version, I would add helpers to prevent the same milestone from being announced more than once during a print.
Taking it a step further
Once the basic notifications are working, there is plenty of room for expansion.
A finished-print automation could include the print name, duration, filament weight and number of layers.
For example:
🖨️ Print finished
Minimal Remote Caddy
221.5 g PETG
481 layers
2h 34m
An error notification could include the current progress and a camera snapshot, making it possible to check the printer remotely.
Ventilation could be controlled based on print status and chamber temperature.
The printer’s Wi-Fi signal could also be monitored. A signal of -64 dBm may be perfectly usable, but Home Assistant could warn if it consistently drops below a threshold such as -75 dBm.
And the total printer usage sensor opens another possibility: maintenance reminders after a certain number of printing hours.
The printer becomes part of the smart home
This is what I find most interesting about integrating a 3D printer with Home Assistant.
The printer does not need to be directly controllable for the integration to be useful.
It already knows what is happening, and Home Assistant can react to that information.
A print starts → turn on ventilation.
The print reaches 50% → send a notification.
The chamber gets hot → increase ventilation.
An object is skipped → send an alert.
The print fails → send a critical notification with the camera view.
The print finishes → send a summary.
The printer reaches 500 operating hours → remind me about maintenance.
That turns the 3D printer from an isolated appliance into another smart device in the house.
And there is still one major piece missing: electricity.
Once the printer is connected through an energy-monitoring smart plug, Home Assistant can combine actual electricity consumption with filament usage and electricity prices to calculate the real cost of each print.
That is where things get really interesting — and that will be the subject of the next article.
Some of the links in this article are "affiliate links", a link with a special tracking code. This means if you click on an affiliate link and purchase the item, we will receive an affiliate commission. The price of the item is the same whether it is an affiliate link or not. Regardless, we only recommend products or services we believe will add value to our readers. By using the affiliate links, you are helping support our Website, and we genuinely appreciate your support.