Problem Description:
While MQTT access is currently open on the local LAN, it is not presented in a user-friendly format, requiring JSON parsing and other methods to extract useful information. Bambu has indicated that “MQTT will change in future releases” without providing specifics.
Suggested Feature:
- Continue to allow end-user access to the printer’s MQTT feed. This could be an “advanced” and/or “unsupported” feature.
- Protect the MQTT feed via username/password (similar to FTP access today, possibly share same credentials)
- Enable clearer status topics to subscribe to. Example: Currently you can only subscribe to the default device/printer#/report feed, which is spit out as a large JSON blob of data every second. Said JSON needs to be parsed by an external service (such as Node-Red) to extract useful status information such as Printer status, temps, etc.). This is difficult for even more advanced users and inefficient; it also overwhelms small-footprint devices such as ESP8266 that do not have the memory/cpu to process it.
Instead, provide single topics that can be subscribed to i.e.:
/device/printer#/status/PrintStatus
/device/printer#/status/Nozzle_temp
Etc.
Benefits:
While an advanced feature many users likely won’t take advantage of, many others will, and it would go a long way towards making Bambu printers more “open” - one of the only valid (and consistent) criticisms of the company.
End users would be able to integrate their Printer status in to home automation systems such as Home Assistant. Most other 3D printers offer something similar (there are addons for Prusa, Ender series, Klipper-based printers, and more today).
Would allow for simple addons to be developed, such as turning on a DC relay when the printer begins to print to, for example, turn on external lights, or power fans (for the Bentobox filter, etc.) and other interesting use cases.
Better MQTT support would allow users to integrate their Bambu printers in to their environments (print farms, etc.) much more easily.
Hope you consider this, and of course I am happy to test. I am currently parsing MQTT information through Home Assistant/Node-Red and based on printer status am able to trigger a relay to turn on my recirculating carbon filter (the Bentobox for Bambu, on Printables).
Thanks for all your hard work devs! Much appreciated, I am a developer as well and I know how hard it really is to make devices easy to use and appear simple.