SV08: Is it possible to activate the “enclosure exhaust fan” by sending a command from the Console? Can the speed be set? If so, what is the command line?
There may be shorter and easier ways than this one, but this should work (“should” because I currently don’t control any fan, but display backlight. Fan ought to be controllable in a similar way). Setting all this up for one single purpose of controlling a fan may be overkill, or a fine example of a Rube-Goldberg construct. However, you may have parts of the setup in place already anyway:
I run a local MQTT broker, and a NodeRED installation. One of the installed plugins in NodeRED is moonNode. This one serves the purpose to allow NodeRED to talk to Klipper. That is, to the Sovol 3D printer. Among other, it allow NodeRED to remotely execute Klipper macros, including the passing of parameters.
That plugin must be triggered one way or another. From the choice of a multitude of events, an MQTT message is great for that purpose, as it allows any machine in the network, which has or can access an MQTT client, to signal its desire. Such as, in my case, “set display backlight to green”. MQTT clients exist as command line versions too, therefore is issuing such a message greatly scriptable.
When broker receives such an MQTT message, it passes it on to any machine which has subscribed to the topic. A topic may be /devices/sovol/fan1. As moonNode in NodeRED will have subscribed to it, it will receive that message, and react accordingly. Such as, extracting the parameter (the message payload) which determines fan speed, and sends the acording Klipper macro invocation, along with the parameter, to the printer.
While not the easiest solution to your need, it may be a very flexible one, as you’d not be limited to controlling your 3D pinter, but can use this setup to control pretty much everything capable of being controlled.
Screenshots of the “program” to control this:
A flow which received input from speech recognition (mobile phone) and MQTT to control, among other, the printer. That means I can talk to the printer. Well, to its backlight, currently.
And a flow which generates a web page with some printer parameters, like temperatures. Graphs for load and number of processes on the printer are currently disabled, for purpose of rearranging the web page layout. In addition does the flow contain some tests and experiments wrt printer control.
The printer is publishing its operational parameters through MQTT as well: