[APP][PRO] Bambu Lab 3D Printer

Homey app to monitor and control 3D Printers from Bambu Labs.

Supported 3D printer models

The app was during development tested with Bambu Lab P1S. But thanks to many helpful community members we now have tested and have feature parity on X and A series printers.

Network

  • Homey connect to the printer via the local area network and Bambu Lab Cloud is not used.
  • Your 3D printer does NOT have be in the ‘LAN Only mode’ to work.
  • It is a good idea to use a fixed IP-reservation for your printer on your local network router/dhcp.

Bambu Cloud

Future versions might add optional support for Bambu cloud but nothing decided yet. Bambu recently added restrictions the cloud MQTT endpoints and i think that they might (speculation) be moving towards their HTTP based APIs. As the Homey Pro anyway is on the home network i think local connection using MQTT is a great fit.

Add new device / Installation

To add your Bambu Lab 3d printer as a device you need three things:

  • IP-Address. Can be found on your printer display (or in your home network DHCP).
  • Device Id. Your printer ‘serial’. Can be found on your printer display (aka ‘Printer’)
  • Access Code. This can be found on your printer display.

Screen examples

P1S


X1C


A1

image

Periodic ‘Push-all’ command

The printer updates Homey on its status every few seconds using MQTT. The P series (And A1?) only send changed values while the X series (due to a larger CPU?) send ALL values every time. The app therefore implements a recommended periodic push-all-command to make sure all properties are up to date.

  • X1 here the periodic ‘push-all-command’ can be disabled as it is not needed.
  • P1S can go less that 5 minutes if needed
  • P1P keep this on 5 minutes or more as the CPU is more limited.
  • A1/A1-Mini [TBD]

Change Periodic ‘Push-all’ command

  • Go to device advanced settings
  • Default values are ON and 5 minutes.

App details

Drivers

3d Printer (local)

Triggers

  • alarm_error_capability_changed
  • status_capability_changed
  • nozzle_temp_actual_capability_changed
  • nozzle_temp_set_capability_changed
  • bed_temp_actual_capability_changed
  • bed_temp_set_capability_changed
  • minutes_remaining_capability_changed
  • percent_done_capability_changed

Actions

  • chamber_light_off
  • chamber_light_on

Capabilities (Read)

  • alarm_error_capability
  • bed_temp_actual_capability
  • bed_temp_set_capability
  • minutes_remaining_capability
  • nozzle_temp_actual_capability
  • minutes_remaining_capability
  • minutes_remaining_capability
  • minutes_remaining_capability
  • nozzle_temp_actual_capability
  • nozzle_temp_set_capability
  • percent_done_capability
  • status_capability

Capabilities (Read/Write)

  • chamber_light_capability
  • speed_capability

Screen shots




Thanks for help with testing and providing screenshots that help others @xxJeroenxx & @Valentin_Ciopei :slight_smile:

Version History

  • 1.0.10 | Improved error handling in connection test during pairing
  • 1.0.9 | bugfix in pairing view
  • 1.0.8 | Small fix that potentially fixes issue with chamber light control on X1C model
  • 1.0.7 | added flow cards of type trigger. Minor bugfixes
  • 1.0.6 | bugfix
  • 1.0.5 | bugfix and added more context to readme
  • 1.0.3 | Initial version after certification
7 Likes

Troubleshooting & known issues

No data shown in capabilities after successful add device

If the wrong ‘printer id’ was used when adding the device this will be the result. No validation exist here currently.

Solution

Delete the device and add it again with correct ‘printer id’.

  • Hint - ‘printer id’ is sometimes called serial no and contain no - or : characters.

After a printer factory reset the access code will change and result in errors and potential app crash

If you perform a factory reset you get a new access code and that will result in strange behavior from the app.

Solution

  1. Update the Device Advanced Setting with the new access code.
  2. Restart app

Hey BufferOverflow,
thank you very much for the App and your effort. I just installed it and it works like a charm!
Currently I am using the app to do two things:

  • Turn on the Ikea Air cleaner which is connected to a smart socket, as soon as a print started
  • Turn off the chamber light 30 min after a print finished.

May I suggest for further development. It would be great, if the Capabilities values are available in homey-advances-scripts:

  • alarm_error_capability
  • bed_temp_actual_capability
  • bed_temp_set_capability
  • minutes_remaining_capability
  • nozzle_temp_actual_capability
  • minutes_remaining_capability
  • minutes_remaining_capability
  • minutes_remaining_capability
  • nozzle_temp_actual_capability
  • nozzle_temp_set_capability
  • percent_done_capability
  • status_capability

Best, Andy

1 Like

Brilliant and thanks for trying it out so quickly!

May i ask what Bambu model you have? I got a report on light control on the X1C not working where it has been flawless on my P1S. I have an idea but would be nice to know as i “only” have tested on P1S.

You are thinking as conditional ‘AND’ flow cards or do you mean something else? Because conditional flow cards are on my list for a release soon.

If it is Homey Scripts i can get them on my device or you mean something else? (I will fix the Remaining issue that the ‘text’ version with ‘h’ and ‘m’ is shown)

image

Is not working with A1 yet?

The app developer just said they have a P1S, so if something isn’t working, please elaborate.

1 Like

my bad. I didn’t add it properly.
I works OK with A1.

1 Like

I am using a P1S.

1 Like

Not so important to me but on my X1C the light goes back on immediately when I press off. Status is adjusted well when I do it via the Bambuapp.

1 Like

Yes, conditional flow cards is what I mean.
An example workflow which could be realised:

  1. “minutes_remaining_capability” changed
  2. If below 15 minutes
  3. send a message to me, like: “Minter will finish in 15 minutes. Get ready to pick up your print.”
1 Like

Sorry for the confusion.
I meant “Homey advanced flow”.

This is my current work flow to turn on/off the IKEA UPPÅTVIND Aircleaner. The flow also turns off the Chamber-Light.
The AirCleaner is connected to a smart socket. The nice thing about IKEA AirCleaner ist that it remembers the last state. So when the smart socket turns it on, it returns on the fan to the speed setting from last time. The AirCleaner has three fan speeds.

p.s. CountDown is a Homey-App.

1 Like

Cool, then we can at least confirm that it works to some extent on P1S, X1C, A1. Thanks :slight_smile:

Let me know if/when you want to test something.
And thank you for the app!

1 Like

A new version (1.0.7) available in TEST which has some new flow cards of type trigger that i think is what you are looking for. Give it a go and let me know the result :slight_smile:

Can you also add an AND? Like and status is running?

1 Like

I released 1.0.7 to TEST an hour ago and that has several new flow cards of type trigger (when). Each has at least one ‘tag’ with it that can be used easily in the next one.

Already today i can have a flow triggered by lets say status_capability_changed and then combine that with an AND/Logic looking at any capability value. See my example with ‘speed’ below.

Could we not accomplish your scenario already today with AND/Logic looking at the capability ‘status’? Or is it me missing something obvious here.

And i will gladly add conditional flow cards if they can not (easily) already be accomplished :slight_smile:


1 Like

You’re right. I forgot that you already provide all those capabilities.

1 Like