diff options
Diffstat (limited to 'docs/Command_Templates.md')
-rw-r--r-- | docs/Command_Templates.md | 208 |
1 files changed, 3 insertions, 205 deletions
diff --git a/docs/Command_Templates.md b/docs/Command_Templates.md index b68de68b..a5e3d323 100644 --- a/docs/Command_Templates.md +++ b/docs/Command_Templates.md @@ -120,6 +120,9 @@ gcode: M106 S{ printer.fan.speed * 0.9 * 255} ``` +Available fields are defined in the [Status +Reference](Status_Reference.md) document. + Important! Macros are first evaluated in entirety and only then are the resulting commands executed. If a macro issues a command that alters the state of the printer, the results of that state change will @@ -136,211 +139,6 @@ objects. If the config section contains spaces in it, then one can access it via the `[ ]` accessor - for example: `printer["generic_heater my_chamber_heater"].temperature`. -The following are common printer attributes: -- `printer.fan.speed`: The fan speed as a float between 0.0 and 1.0. - This is also available on "heater_fan", "fan_generic", and - "controller_fan" config sections (eg, - `printer["fan_generic my_fan"].speed`). -- `printer.fan.rpm`: The measured fan speed in rotations per minute if - the fan has a tachometer_pin defined. This is also available on - "heater_fan", "fan_generic", and "controller_fan" config sections - (eg, `printer["fan_generic my_fan"].rpm`). -- `printer.gcode_move.gcode_position`: The current position of the - toolhead relative to the current G-Code origin. That is, positions - that one might directly send to a `G1` command. It is possible to - access the x, y, z, and e components of this position (eg, - `printer.gcode_move.gcode_position.x`). -- `printer.gcode_move.position`: The last commanded position of the - toolhead using the coordinate system specified in the config - file. It is possible to access the x, y, z, and e components of this - position (eg, `printer.gcode_move.position.x`). -- `printer.gcode_move.homing_origin`: The origin of the gcode - coordinate system (relative to the coordinate system specified in - the config file) to use after a `G28` command. The - `SET_GCODE_OFFSET` command can alter this position. It is possible - to access the x, y, and z components of this position (eg, - `printer.gcode_move.homing_origin.x`). -- `printer.gcode_move.speed`: The last speed set in a `G1` command (in - mm/s). -- `printer.gcode_move.speed_factor`: The "speed factor override" as - set by an `M220` command. This is a floating point value such - that 1.0 means no override and, for example, 2.0 would double - requested speed. -- `printer.gcode_move.extrude_factor`: The "extrude factor override" - as set by an `M221` command. This is a floating point value such - that 1.0 means no override and, for example, 2.0 would double - requested extrusions. -- `printer.gcode_move.absolute_coordinates`: This returns True if in - `G90` absolute coordinate mode or False if in `G91` relative mode. -- `printer.gcode_move.absolute_extrude`: This returns True if in `M82` - absolute extrude mode or False if in `M83` relative mode. -- `printer["gcode_macro <macro_name>"].<variable>`: The current value - of a gcode_macro variable. -- `printer.<heater>.temperature`: The last reported temperature (in - Celsius as a float) for the given heater. Example heaters are: - `extruder`, `extruder1`, `heater_bed`, `heater_generic - <config_name>`. -- `printer.<heater>.target`: The current target temperature (in - Celsius as a float) for the given heater. -- `printer.<heater>.power`: The last setting of the PWM pin (a value - between 0.0 and 1.0) associated with the heater. -- `printer.idle_timeout.state`: The current state of the printer as - tracked by the idle_timeout module. It is one of the following - strings: "Idle", "Printing", "Ready". -- `printer.idle_timeout.printing_time`: The amount of time (in - seconds) the printer has been in the "Printing" state (as tracked by - the idle_timeout module). -- `printer.pause_resume.is_paused`: Returns true if a PAUSE command - has been executed without a corresponding RESUME. -- `printer.toolhead.position`: The last commanded position of the - toolhead relative to the coordinate system specified in the config - file. It is possible to access the x, y, z, and e components of this - position (eg, `printer.toolhead.position.x`). -- `printer.toolhead.extruder`: The name of the currently active - extruder. For example, one could use - `printer[printer.toolhead.extruder].target` to get the target - temperature of the current extruder. -- `printer.toolhead.homed_axes`: The current cartesian axes considered - to be in a "homed" state. This is a string containing one or more of - "x", "y", "z". -- `printer.toolhead.axis_minimum`, - `printer.toolhead.axis_maximum`: The axis travel limits (mm) after homing. - It is possible to access the x, y, z components of this - limit value (eg, `printer.toolhead.axis_minimum.x`, - `printer.toolhead.axis_maximum.z`). -- `printer.toolhead.max_velocity`, `printer.toolhead.max_accel`, - `printer.toolhead.max_accel_to_decel`, - `printer.toolhead.square_corner_velocity`: The current printing - limits that are in effect. This may differ from the config file - settings if a `SET_VELOCITY_LIMIT` (or `M204`) command alters them - at run-time. -- `printer.toolhead.stalls`: The total number of times (since the last - restart) that the printer had to be paused because the toolhead - moved faster than moves could be read from the G-Code input. -- `printer.heaters.available_heaters`: Returns a list of all currently - available heaters by their full config section names, - e.g. `["extruder", "heater_bed", "heater_generic my_custom_heater"]`. -- `printer.heaters.available_sensors`: Returns a list of all currently - available temperature sensors by their full config section names, - e.g. `["extruder", "heater_bed", "heater_generic my_custom_heater", - "temperature_sensor electronics_temp"]`. -- `printer.query_endstops.last_query["<endstop>"]`: Returns True if - the given endstop was reported as "triggered" during the last - QUERY_ENDSTOP command. Note, due to the order of template expansion - (see above), the QUERY_ENDSTOP command must be run prior to the - macro containing this reference. -- `printer.probe.last_query`: Returns True if the probe was reported - as "triggered" during the last QUERY_PROBE command. Note, due to the - order of template expansion (see above), the QUERY_PROBE command - must be run prior to the macro containing this reference. -- `printer.probe.last_z_result`: Returns the Z result value of the - last PROBE command. Note, due to the order of template expansion - (see above), the PROBE (or similar) command must be run prior to the - macro containing this reference. -- `printer.configfile.settings.<section>.<option>`: Returns the given - config file setting (or default value) during the last software - start or restart. (Any settings changed at run-time will not be - reflected here.) -- `printer.configfile.config.<section>.<option>`: Returns the given - raw config file setting as read by Klipper during the last software - start or restart. (Any settings changed at run-time will not be - reflected here.) All values are returned as strings. -- `printer["gcode_macro <macro_name>"].<variable>`: The current value - of a [gcode_macro variable](#variables). -- `printer.webhooks.state`: Returns a string indicating the current - Klipper state. Possible values are: "ready", "startup", "shutdown", - "error". -- `printer.webhooks.state_message`: A human readable string giving - additional context on the current Klipper state. -- `printer.display_status.progress`: The progress value of the last - `M73` G-Code command (or `printer.virtual_sdcard.progress` if no - recent `M73` received). -- `printer.display_status.message`: The message contained in the last - `M117` G-Code command. -- `printer["filament_switch_sensor <config_name>"].enabled`: Returns - True if the switch sensor is currently enabled. -- `printer["filament_switch_sensor <config_name>"].filament_detected`: - Returns True if the sensor is in a triggered state. -- `printer.virtual_sdcard.is_active`: Returns True if a print from - file is currently active. -- `printer.virtual_sdcard.progress`: An estimate of the current print - progress (based of file size and file position). -- `printer.virtual_sdcard.file_position`: The current position (in - bytes) of an active print. -- `printer.print_stats.filename`, - `printer.print_stats.total_duration`, - `printer.print_stats.print_duration`, - `printer.print_stats.filament_used`, `printer.print_stats.state`, - `printer.print_stats.message`: Estimated information about the - current print when a virtual_sdcard print is active. -- `printer.firmware_retraction.retract_length`, - `printer.firmware_retraction.retract_speed`, - `printer.firmware_retraction.unretract_extra_length`, - `printer.firmware_retraction.unretract_speed`: The current settings - for the firmware_retraction module. These settings may differ from - the config file if a `SET_RETRACTION` command alters them. -- `printer["bme280 <sensor_name>"].temperature`, - `printer["bme280 <sensor_name>"].humidity`, - `printer["bme280 <sensor_name>"].pressure`, - `printer["bme280 <sensor_name>"].gas`: The last read values - from the sensor. -- `printer["htu21d <sensor_name>"].temperature`, - `printer["htu21d <sensor_name>"].humidity`: The last read values - from the sensor. -- `printer["lm75 <sensor_name>"].temperature`: The last read - temperature from the sensor. -- `printer["temperature_host <sensor_name>"].temperature`: The last read - temperature from the sensor. -- `printer["temperature_sensor <config_name>"].temperature`: The last read - temperature from the sensor. -- `printer["temperature_sensor <config_name>"].measured_min_temp`, - `printer["temperature_sensor <config_name>"].measured_max_temp`: The - lowest and highest temperature seen by the sensor since the Klipper - host software was last restarted. -- `printer["temperature_fan <config_name>"].temperature`: The last read - temperature from the sensor. -- `printer["temperature_fan <config_name>"].target`: The target - temperature for the fan. -- `printer["output_pin <config_name>"].value`: The "value" of the pin, - as set by a `SET_PIN` command. -- `printer["servo <config_name>"].value`: The last setting of the PWM - pin (a value between 0.0 and 1.0) associated with the servo. -- `printer.bed_mesh.profile_name`, `printer.bed_mesh.mesh_min`, - `printer.bed_mesh.mesh_max`, `printer.bed_mesh.probed_matrix`, - `printer.bed_mesh.mesh_matrix`: Information on the currently active - bed_mesh. -- `printer.hall_filament_width_sensor.is_active`: Returns True if the - sensor is currently active. -- `printer.hall_filament_width_sensor.Diameter`, - `printer.hall_filament_width_sensor.Raw`: The last read values from - the sensor. -- `printer.mcu.mcu_version`: The Klipper code version reported by the - micro-controller. -- `printer.mcu.mcu_build_versions`: Information on the build tools - used to generate the micro-controller code (as reported by the - micro-controller). -- `printer.mcu.mcu_constants.<constant_name>`: Compile time constants - reported by the micro-controller. The available constants may differ - between micro-controller architectures and with each code revision. -- `printer.mcu.last_stats.<statistics_name>`: Statistics information - on the micro-controller connection. -- `printer.system_stats.sysload`, `printer.system_stats.cputime`, - `printer.system_stats.memavail`: Information on the host operating - system and process load. -- `printer.palette2.ping`: Amount of the last reported Palette 2 ping - in percent. -- `printer.palette2.remaining_load_length`: When starting a Palette 2 - print, this will be the amount of filament to load into the extruder. -- `printer.palette2.is_splicing`: True when the Palette 2 is splicing - filament. - -The above list is subject to change - if using an attribute be sure to -review the [Config Changes document](Config_Changes.md) when upgrading -the Klipper software. The above list is not exhaustive. Other -attributes may be available (via `get_status()` methods defined in the -software). However, undocumented attributes may change without notice -in future Klipper releases. - Note that the Jinja2 `set` directive can assign a local name to an object in the `printer` hierarchy. This can make macros more readable and reduce typing. For example: |