Bambu Lab X1 X1C MQTT

@orange-assistant The beta-firmware working was from someone I trust who was testing it while we were in contact - RTSPS url and connection still worked.

As for camera problems in general, @friday567 may need to be more specific - is it RTSPS stream from an X1? The PNG pushes from A1/P1? Or the camera feed into handy / bambustudio / orcaslicer etc, with cloud or lan mode?

I assume handy app via cloud mode - it is possible that older firmware camera feeds may not be supported in the newer versions of the Handy app, as in the bambu blog post about it, the new firmware + handy + bbs versions are meant to be rolled out together. And when you view the camera via handy app, it is being routed through a cloud tunnel service/protocol (tutk).

Currently I’m on X1Plus still so my firmware based on 01.08.00.00, and tested a beta for porting up to 01.08.02.00, and my camera access still works on handy app via cloud connection. And checking my handy version, I have no updates available so I might be on latest but not sure, I rarely use the handy app to be fair.

But that’s a firmware not from bambu labs? :bamboo:

X1Plus is to your printer what jailbreaking is to a smartphone. It allows end users to modify the firmware as they desire, and to add or improve features and functionality over what the original manufacturer has implemented.

Via cloud it should continue to work. But what about the local rtsp stream? :movie_camera:

From the information I gathered from various sources the RTSP camera stream isn’t available locally anymore in the LAN mode with the new firmware. The newly introduced developer mode on the other hand should actually still allow local RTSP access (for now). :raised_hands:

Will Bambu publicly commit to permanently keep the Developer mode with local MQTT, livestream and FTP and never remove it in any future update or shipping batch of the X1, P1, A1, and A1 Mini?

Yes. However, if a severe security issue arises in the future, we may need to make adjustments to address it.

The maybe most honest comment actually comes from the Bambu Lab CEO Dr. Tao himself :point_down:

Only a tiny percentage of our users want direct, unfettered control of their machines. Most people just want the machine to work - every time, like an appliance. We need to protect that goal.”

Everyone can make their own thoughts what that means - specially for limitations (ownership/control) for future products from bambu labs :gift:

X1Plus still uses official bambulabs firmware - it’s just rooted with additions, to put it simply. I only mentioned it to give information for what version I was on. So far, the only main difference aside from additions is that I’m using a different WiFi driver, otherwise, it’s essentially 01.08.00.00 with additions.

I had mentioned that already that both camera via cloud and camera via local RTSPS stream work. And specifically for the beta-firmware from official bambu - RTSPS still worked. Granted, the beta firmware was a beta, before the dev lan mode was even mentioned. I would not be surprised if it got limited to the dev lan mode, just like FTP and MQTT - that just makes sense to at that point. I also wouldn’t be surprised if, like every beta prior, there were multiple versions rolled out at once with varying levels of things enabled/disabled. This has been standard procedure from them for ages (and a good tactic overall for beta releases).

Bambu’s comments regarding severe security issues is the same reason why there have been (technically) multiple Firmware R versions required for x1plus - if a security vulnerability was found, it gets backported and updated. So if a future version has a security vulnerability, that statement literally reads as they are committed to keeping the access with the dev lan mode, but if a security issue comes up, it will need to be addressed/patched. This is nothing new, and nothing to worry about.

I am trying to use the homeassistant integration to load/unload filament in my p1s. This is the only place I found talking about this. Can you please elaborate on this, How would I send this? I am not using mqtt directly at the moment but I do use the bambu integration.
Thanks.

Honestly, I’m not sure with HA. I actually dropped that comment when I was building an integration for a different automation platform where I was talking to the printer directly over MQTT.

Does anyone happen to know the measurement value for remaining filament?
For example, Tray 1 shows remaining filament 26. Is that grams, meters, something else?

I think in percent % remaining

For each tray, it’s the “remain” value. It will be 0 for non bambu filament all the time though, which you can tell by the uuid’s in each tray being well, blank.

If you don’t have filament tracking enabled, it will be -1 though. Otherwise, the “remain” value is 0-100 integer, and is usually only at about 10% intervals for granularity.

I have eventually got Postgres setup, but its not creating the table prints, there is an error showing in NodeRed, any ideas what could be wrong?


This is bit of the log from Postgres15 running as an addon
[06:47:44] INFO: Checking if ‘vectors’ extension is enabled…
[06:47:44] INFO: ‘vectors’ extension is enabled.
[06:47:44] INFO: All initialization steps completed successfully!
2025-05-09 06:51:16.374 BST [348] ERROR: relation “prints” does not exist at character 30
2025-05-09 06:51:16.374 BST [348] STATEMENT: select distinct printer from prints where material_type = ‘filament’;
2025-05-09 06:51:16.436 BST [348] ERROR: relation “prints” does not exist at character 88
2025-05-09 06:51:16.436 BST [348] STATEMENT: select distinct(b->>‘type’) from (select JSONB_ARRAY_ELEMENTS(filament_data) as b from prints where jsonb_array_length( filament_data ) != 0 and printer = ‘’ ) as foo
2025-05-09 06:51:16.525 BST [348] ERROR: relation “prints” does not exist at character 398
2025-05-09 06:51:16.525 BST [348] STATEMENT: select
sum( CASE WHEN (b->>‘used_g’)::float = 0.0 and material_used > 0 and most_mat = ‘’ and most_mat = (b->>‘type’)::text THEN material_used ELSE ( (b->>‘used_g’)::float * (progress_done / 100) ) END),
(b->>‘type’)::text as material
from (
SELECT JSONB_ARRAY_ELEMENTS(filament_data) as b, progress_done, material as most_mat, material_used
from prints
where jsonb_array_length(filament_data) != 0
and printer = ‘’
and start_time BETWEEN ‘2023-05-09T05:51:16.237Z’ AND ‘2025-05-09T05:51:16.237Z’
) as foo
where (b->>‘type’)::text = ‘’ group by material
2025-05-09 06:51:16.533 BST [348] ERROR: relation “prints” does not exist at character 57
2025-05-09 06:51:16.533 BST [348] STATEMENT: select

This did not initialize the tables, there should be an option in the nodered flow to force the initialization of the tables if it is all setup correctly. “Force Init” will force create all dependencies and try fitting in the current print if it failed. Though, if the DB flow is correctly setup, it should run through this initialization check each time a print goes through, unless the HA nodes configuration (server setup) is not working, which you can tell if there’s nothing going on below the blue nodes.

EDIT: All sorted with the help of chat gpt, up and running.
Hi, so for some reason using “node-red-contrib-postgrestor-next” palette would not connect to my database however i tried. I tried Postgress 15 and TimescaleDB addons. So i have used “node-red-contrib-postgresql”. However when i deleted "node-red-contrib-postgrestor-next"and reimported the flow it was still looking for “node-red-contrib-postgrestor-next” so i copied all the postgrestor nodes over to postgresql, now this creates the database and updates the energy side but all other fields there is a red warning triangle in grafana saying db query error: pq: syntax error at or near “PLA” on all 3 differnt dashboards. I named the data source in grafana 3D Prints - PG13 as stated, im getting close