greghesp / ha-bambulab

A Home Assistant Integration for Bambu Lab Printers
696 stars 58 forks source link

[Feature] Extrude/retract (or load/unload) filament commands #533

Open WayneManion opened 1 month ago

WayneManion commented 1 month ago

Describe the feature

I have my printers on shelves. One of my printers is a P1P with the P1S conversion kit. Sometimes I have to turn the printer around to be able to load filament. When the printer is turned around I no longer have easy access to the controls on the front of the printer.

On my Klipper printers I have macros set up to heat to 240C, turn off the nozzle heater, retract 25mm, extrude 50mm, and extrude 200mm. I have a Zigbee scene remote connected to Home Assistant that can trigger these macros. This means I can heat the nozzle and then retract or extrude filament as needed to perform filament (un)loading without access to the printer's display.

I would like to be able to do something like this with my P1P/S. I can already heat or cool the nozzle with a Zigbee remote, but I don't know if there is any way to provoke an extrusion or retraction move by using MQTT or the Bambu integration.

Yes, I could use my phone, but when I have the printer turned around and one hand trying to push filament into the reverse Bowden tube I would rather just press a simple physical button.

What device is this for?

P1S

Other Information

No response

WayneManion commented 1 month ago

I did some experimentation. I could not figure out how to get the TLS working with the mosquitto_pub client, so I used Node-RED.

It is completely possible to send lines of gcode to the printer. At least when the printer is in LAN mode. Send a message to device/{{SERIAL}}/request like this:

{
   "print":{
       "sequence_id":"0",
       "command":"gcode_line",
       "param":"G1 E50 F600 \n \n",
       "user_id":"1234"
   }
}

And the machine will extrude a little bit of filament if the nozzle is up to temperature.