Status reference¶
Questo documento è un riferimento alle informazioni sullo stato della stampante disponibili in Klipper macro, display fields e tramite API Server.
I campi in questo documento sono soggetti a modifiche: se si utilizza un attributo, assicurarsi di rivedere il documento Modifiche alla configurazione durante l'aggiornamento del software Klipper.
angle¶
Le seguenti informazioni sono disponibili negli oggetti angle some_name:
temperature: l'ultima lettura della temperatura (in gradi Celsius) da un sensore magnetico Hall tle5012b. Questo valore è disponibile solo se il sensore angolare è un chip tle5012b e se le misurazioni sono in corso (altrimenti segnalaNone).
bed_mesh¶
Le seguenti informazioni sono disponibili in bed_mesh:
profile_name,mesh_min,mesh_max,probed_matrix,mesh_matrix: informazioni sulla bed_mesh attualmente attiva.profiles: l'insieme dei profili attualmente definiti come setup usando BED_MESH_PROFILE.
bed_screws¶
The following information is available in the bed_screws object:
is_active: Restituisce True se lo strumento di regolazione delle viti del letto è attualmente attivo.state: lo stato dello strumento di regolazione delle viti del piatto. È una delle seguenti stringhe: "adjust", "fine".current_screw: l'indice per la vite corrente in corso di regolazione.accepted_screws: il numero di viti accettate.
canbus_stats¶
The following information is available in the canbus_stats some_mcu_name object (this object is automatically available if an mcu is configured to use canbus):
rx_error: The number of receive errors detected by the micro-controller canbus hardware.tx_error: The number of transmit errors detected by the micro-controller canbus hardware.tx_retries: The number of transmit attempts that were retried due to bus contention or errors.bus_state: The status of the interface (typically "active" for a bus in normal operation, "warn" for a bus with recent errors, "passive" for a bus that will no longer transmit canbus error frames, or "off" for a bus that will no longer transmit or receive messages).
Note that only the rp2XXX micro-controllers report a non-zero tx_retries field and the rp2XXX micro-controllers always report tx_error as zero and bus_state as "active".
configfile¶
Le seguenti informazioni sono disponibili nell'oggetto configfile (questo oggetto è sempre disponibile):
settings.<section>.<option>: Restituisce l'impostazione del file di configurazione data (o il valore predefinito) durante l'ultimo avvio o riavvio del software. (Qualsiasi impostazione modificata in fase di esecuzione non si rifletterà qui.)config.<section>.<option>: Restituisce l'impostazione del file di configurazione non elaborato come letta da Klipper durante l'ultimo avvio o riavvio del software. (Qualsiasi impostazione modificata in fase di esecuzione non si rifletterà qui.) Tutti i valori vengono restituiti come stringhe.save_config_pending: Restituisce vero se ci sono aggiornamenti che un comandoSAVE_CONFIGpotrebbe rendere persistenti sul disco.save_config_pending_items: contiene le sezioni e le opzioni che sono state modificate e sarebbero mantenute da unSAVE_CONFIG.warnings: un elenco di avvisi sulle opzioni di configurazione. Ogni voce nell'elenco sarà un dizionario contenente un campotypeemessage(entrambe le stringhe). Ulteriori campi potrebbero essere disponibili a seconda del tipo di avviso.
display_status¶
Le seguenti informazioni sono disponibili nell'oggetto display_status (questo oggetto è automaticamente disponibile se è definita una sezione di configurazione display):
progress: il valore di avanzamento dell'ultimo comando G-CodeM73(ovirtual_sdcard.progressse non è stato ricevuto alcunM73recente).message: il messaggio contenuto nell'ultimo comando G-CodeM117.
endstop_phase¶
Le seguenti informazioni sono disponibili nell'oggetto endstop_phase:
last_home.<nome stepper>.phase: La fase del motore passo-passo al termine dell'ultimo tentativo di home.last_home.<stepper name>.phases: il numero totale di fasi disponibili sul motore passo-passo.last_home.<stepper name>.mcu_position: la posizione (tracciata dal microcontrollore) del motore passo-passo alla fine dell'ultimo tentativo di home. La posizione è il numero totale di passi effettuati in avanti meno il numero totale di passi effettuati in senso inverso dall'ultimo riavvio del microcontrollore.
exclude_object¶
Le seguenti informazioni sono disponibili nell'oggetto exclude_object:
-
objects: un array di oggetti conosciuti come fornito dal comandoEXCLUDE_OBJECT_DEFINE. Queste sono le stesse informazioni fornite dal comandoEXCLUDE_OBJECT VERBOSE=1. I campicenterepolygonsaranno presenti solo se forniti nell'originaleEXCLUDE_OBJECT_DEFINEEcco un esempio JSON:
[
{
"polygon": [
[ 156.25, 146.2511675 ],
[ 156.25, 153.7488325 ],
[ 163.75, 153.7488325 ],
[ 163.75, 146.2511675 ]
],
"name": "CYLINDER_2_STL_ID_2_COPY_0",
"center": [ 160, 150 ]
},
{
"polygon": [
[ 146.25, 146.2511675 ],
[ 146.25, 153.7488325 ],
[ 153.75, 153.7488325 ],
[ 153.75, 146.2511675 ]
],
"name": "CYLINDER_2_STL_ID_1_COPY_0",
"center": [ 150, 150 ]
}
]
excluded_objects: un array di stringhe che elenca i nomi degli oggetti esclusi.current_object: il nome dell'oggetto attualmente in fase di stampa.
extruder_stepper¶
Le seguenti informazioni sono disponibili per gli oggetti extruder_stepper (così come per gli oggetti extruder):
pressure_advance: il valore corrente di pressure advance.smooth_time: il tempo di avanzamento graduale della pressure advance corrente.motion_queue: il nome dell'estrusore con cui è attualmente sincronizzato questo stepper estrusore. Questo viene segnalato comeNonese lo stepper dell'estrusore non è attualmente associato a un estrusore.
fan¶
Le seguenti informazioni sono disponibili negli oggetti fan, heater_fan some_name e controller_fan some_name:
speed: La velocità della ventola come float tra 0.0 e 1.0.rpm: la velocità della ventola misurata in rotazioni al minuto se la ventola ha un pin tachimetro definito.
filament_switch_sensor¶
Le seguenti informazioni sono disponibili negli oggetti filament_switch_sensor some_name:
enabled: Restituisce True se il sensore interruttore è attualmente abilitato.filament_detected: restituisce True se il sensore è in uno stato attivato.
filament_motion_sensor¶
Le seguenti informazioni sono disponibili negli oggetti filament_motion_sensor some_name:
abilitato: Restituisce True se il sensore di movimento è attualmente abilitato.filament_detected: restituisce True se il sensore è in uno stato attivato.
firmware_retraction¶
Le seguenti informazioni sono disponibili nell'oggetto firmware_retraction:
retract_length,retract_speed,unretract_extra_length,unretract_speed: le impostazioni correnti per il modulo firmware_retraction. Queste impostazioni possono differire dal file di configurazione se un comandoSET_RETRACTIONle altera.
gcode¶
The following information is available in the gcode object:
commands: Returns a list of all currently available commands. For each command, if a help string is defined it will also be provided.
gcode_button¶
The following information is available in gcode_button some_name objects:
state: The current button state returned as "PRESSED" or "RELEASED"
gcode_macro¶
Le seguenti informazioni sono disponibili negli oggetti gcode_macro some_name:
<variabile>: il valore corrente di una variabile gcode_macro.
gcode_move¶
Le seguenti informazioni sono disponibili nell'oggetto gcode_move (questo oggetto è sempre disponibile):
gcode_position: The current position of the toolhead relative to the current G-Code origin. That is, positions that one might directly send to aG1command. This value is encoded as a coordinate.position: The last commanded position of the toolhead using the coordinate system specified in the config file. This value is encoded as a coordinate.homing_origin: The origin of the gcode coordinate system (relative to the coordinate system specified in the config file) to use after aG28command. TheSET_GCODE_OFFSETcommand can alter this position. This value is encoded as a coordinate.speed: l'ultima velocità impostata in un comandoG1(in mm/s).speed_factor: La"speed factor override" come impostato da un comandoM220. Questo è un valore in virgola mobile tale che 1,0 significa nessun override e, ad esempio, 2,0 raddoppierebbe la velocità richiesta.extrude_factor: L'"extrude factor override" come impostato da un comandoM221. Questo è un valore in virgola mobile tale che 1,0 significa nessun override ad esempio 2,0 raddoppierebbe le estrusioni richieste.absolute_coordinates: restituisce True se in modalità coordinate assoluteG90o False se in modalità relativaG91.absolute_extrude: restituisce True se in modalità di estrusione assolutaM82o False se in modalità relativaM83.axis_map: Provides a mechanism for finding the coordinate component for a given G-Code id that is used inG1commands. See the Accessing Coordinates section for details.
hall_filament_width_sensor¶
Le seguenti informazioni sono disponibili nell'oggetto hall_filament_width_sensor:
- all items from filament_switch_sensor
is_active: Restituisce True se il sensore è attualmente attivo.flow_compensation_enabled: Returns True if flow compensation is enabled.Diameter: Returns the last width reading in mm if the sensor is active or the nominal filament diameter if it is not.Raw: l'ultima lettura grezza dell'ADC dal sensore.
Riscaldatore¶
Le seguenti informazioni sono disponibili per oggetti riscaldatore come extruder, heater_bed e heater_generic:
temperature: l'ultima temperatura riportata (in gradi Celsius come float) per il dato riscaldatore.target: la temperatura target attuale (in gradi Celsius come float) per il riscaldatore dato.power: l'ultima impostazione del pin PWM (un valore compreso tra 0.0 e 1.0) associato al riscaldatore.can_extrude: Se l'estrusore può estrudere (definito damin_extrude_temp), disponibile solo per extruder
Riscaldatori¶
Le seguenti informazioni sono disponibili nell'oggetto heaters (questo oggetto è disponibile se è definito un riscaldatore):
disponibili_riscaldatori: restituisce un elenco di tutti i riscaldatori attualmente disponibili in base ai nomi completi delle sezioni di configurazione, ad es.["extruder", "heater_bed", "heater_generic my_custom_heater"].available_sensors: restituisce un elenco di tutti i riscaldatori attualmente disponibili in base ai nomi completi delle sezioni di configurazione, ad es.["extruder", "heater_bed", "heater_generic my_custom_heater"].available_monitors: Returns a list of all currently available temperature monitors by their full config section names, e.g.["tmc2240 stepper_x"]. While a temperature sensor is always available to read, a temperature monitor may not be available and will return null in such case.
idle_timeout¶
Le seguenti informazioni sono disponibili nell'oggetto idle_timeout (questo oggetto è sempre disponibile):
state: lo stato corrente della stampante monitorato dal modulo idle_timeout. È una delle seguenti stringhe: "Idle", "Printing", "Ready".printing_time: la quantità di tempo (in secondi) in cui la stampante è rimasta nello stato "Printing" (come tracciato dal modulo idle_timeout).idle_timeout: The current 'timeout' (in seconds) to wait for the gcode to be triggered. (as set by SET_IDLE_TIMEOUT)
led¶
Le seguenti informazioni sono disponibili per ogni sezione di configurazione [led led_name], [neopixel led_name], [dotstar led_name], [pca9533 led_name] e [pca9632 led_name] definita in printer.cfg:
color_data: A list of color lists containing the RGBW values for a led in the chain. Each value is represented as a float from 0.0 to 1.0. Each color list contains 4 items (red, green, blue, white) even if the underlying LED supports fewer color channels. For example, the blue value (3rd item in color list) of the second neopixel in a chain could be accessed atprinter["neopixel <config_name>"].color_data[1][2].
load_cell¶
The following information is available for each [load_cell name]:
is_calibrated: True/False whether the load cell is calibrated.counts_per_gram: The number of raw sensor counts that equals 1 gram of force.reference_tare_counts: The reference number of raw sensor counts for 0 force.tare_counts: The current number of raw sensor counts for 0 force.force_g: The force in grams, averaged over the last polling period.min_force_g: The minimum force in grams, over the last polling period.max_force_g: The maximum force in grams, over the last polling period.errors: The number of sensor errors detected since the last start of measurements.overflows: The number of data buffer overflows detected since the last start of measurements.sample_rate: The sensor's sample rate in samples per second.
load_cell_probe¶
The following information is available for [load_cell_probe]:
- all items from load_cell
- all items from probe
endstop_tare_counts: The load cell probe keeps a tare value independent of the load cell. This is re-set at the start of each probe.last_trigger_time: Timestamp of the last homing trigger.last_z_result: The Z position result of the last tap.is_last_tap_valid: True if the last tap result is valid.
manual_probe¶
Le seguenti informazioni sono disponibili nell'oggetto manual_probe:
is_active: Restituisce True se è attualmente attivo uno script di supporto per il rilevamento manuale.z_position: l'altezza corrente dell'ugello (come la sta attualmente interpretando la stampante).z_position_lower: ultimo tentativo di sonda appena inferiore all'altezza corrente.z_position_upper: ultimo tentativo di sonda appena maggiore dell'altezza corrente.
mcu¶
Le seguenti informazioni sono disponibili negli oggetti mcu e mcu some_name:
mcu_version: la versione del codice Klipper riportata dal microcontrollore.mcu_build_versions: informazioni sugli strumenti di compilazione utilizzati per generare il codice del microcontrollore (come riportato dal microcontrollore).mcu_constants.<constant_name>: Elenca le costanti di tempo riportate dal microcontrollore. Le costanti disponibili possono differire tra le architetture del microcontrollore e con ogni revisione del codice.last_stats.<statistics_name>: informazioni statistiche sulla connessione del microcontrollore.
motion_report¶
Le seguenti informazioni sono disponibili nell'oggetto motion_report (questo oggetto è automaticamente disponibile se è definita una sezione di configurazione stepper):
live_position: The requested toolhead position interpolated to the current time. This value is encoded as a coordinate.live_velocity: la velocità della testa di stampa richiesta (in mm/s) al momento attuale.live_extruder_velocity: la velocità dell'estrusore richiesta (in mm/s) al momento attuale.
output_pin¶
The following information is available in output_pin some_name and pwm_tool some_name objects:
value: Il "valore" del pin, come impostato da un comandoSET_PIN.
palette2¶
Le seguenti informazioni sono disponibili nell'oggetto palette2:
ping: Valore dell'ultimo ping di Palette 2 riportato in percentuale.remaining_load_length: Quando si avvia una stampa della Palette 2, questa sarà la quantità di filamento da caricare nell'estrusore.is_splicing: Vero quando la Palette 2 sta giuntando il filamento.
pause_resume¶
Le seguenti informazioni sono disponibili nell'oggetto pause_resume:
is_paused: Restituisce vero se un comando PAUSE è stato eseguito senza un corrispondente RESUME.
print_stats¶
Le seguenti informazioni sono disponibili nell'oggetto print_stats (questo oggetto è automaticamente disponibile se è definita una sezione di configurazione virtual_sdcard):
filename,total_duration,print_duration,filament_used,state,message: informazioni stimate sulla stampa corrente quando è attiva una stampa da virtual_sdcard.info.total_layer: Il valore totale del layer dell'ultimo comando G-CodeSET_PRINT_STATS_INFO TOTAL_LAYER=<valore>.info.current_layer: il valore del layer corrente dell'ultimo comando G-CodeSET_PRINT_STATS_INFO CURRENT_LAYER=<valore>.
probe¶
Le seguenti informazioni sono disponibili nell'oggetto probe (questo oggetto è disponibile anche se è definita una sezione di configurazione bltouch):
name: restituisce il nome della sonda in uso.last_query: Restituisce True se il probe è stato segnalato come "attivato" durante l'ultimo comando QUERY_PROBE. Nota, se questo viene utilizzato in una macro, a causa dell'ordine di espansione del modello, il comando QUERY_PROBE deve essere eseguito prima della macro contenente questo riferimento.last_probe_position: The results of the lastPROBEcommand. This value is encoded as a coordinate. The probe hardware estimates that if one were to command the toolhead to XY positionlast_probe_position.x,last_probe_position.yand descend then the tip of the toolhead would first contact the bed at a Z height oflast_probe_position.z. These coordinates are relative to the frame (that is, they use the coordinate system specified in the config file). Note, if this is used in a macro, due to the order of template expansion, thePROBEcommand must be run prior to the macro containing this reference.last_z_result: This value is deprecated; it will be removed in the near future.
pwm_cycle_time¶
The following information is available in pwm_cycle_time some_name objects:
value: Il "valore" del pin, come impostato da un comandoSET_PIN.
quad_gantry_level¶
Le seguenti informazioni sono disponibili nell'oggetto quad_gantry_level (questo oggetto è disponibile se quad_gantry_level è definito):
applied: Vero se il processo di livellamento del gantry è stato eseguito e completato con successo.
query_endstops¶
Le seguenti informazioni sono disponibili nell'oggetto query_endstops (questo oggetto è disponibile se è definito un finecorsa):
last_query["<endstop>"]: Restituisce True se l'endstop specificato è stato segnalato come "attivato-triggered" durante l'ultimo comando QUERY_ENDSTOP. Nota, se questo viene utilizzato in una macro, a causa dell'ordine di espansione del modello, il comando QUERY_ENDSTOP deve essere eseguito prima della macro contenente questo riferimento.
screws_tilt_adjust¶
Le seguenti informazioni sono disponibili nell'oggetto screws_tilt_adjust:
error: restituisce True se il comandoSCREWS_TILT_CALCULATEpiù recente includeva il parametroMAX_DEVIATIONe uno qualsiasi dei punti della vite rilevati superava ilMAX_DEVIATIONspecificato.max_deviation: Return the lastMAX_DEVIATIONvalue of the most recentSCREWS_TILT_CALCULATEcommand.results["<screw>"]: un dizionario contenente le seguenti chiavi:z: L'altezza Z misurata della posizione della vite.sign: una stringa che specifica la direzione in cui ruotare la vite per la regolazione necessaria. O "CW" per senso orario o "CCW" per senso antiorario.adjust: il numero di giri di vite per regolare la vite, dato nel formato "HH:MM", dove "HH" è il numero di giri di vite completi e "MM" è il numero di "minuti di un quadrante di orologio" che rappresenta un giro di vite parziale. (Es. "01:15" significherebbe girare la vite di un giro e un quarto.)is_base: Restituisce True se questa è la vite di base.
servo¶
Le seguenti informazioni sono disponibili negli oggetti servo some_name:
printer["servo <config_name>"].value: l'ultima impostazione del pin PWM (un valore compreso tra 0.0 e 1.0) associata al servo.
skew_correction.py¶
The following information is available in the skew_correction object (this object is available if any skew_correction is defined):
current_profile_name: Returns the name of the currently loaded SKEW_PROFILE.
stepper_enable¶
Le seguenti informazioni sono disponibili nell'oggetto stepper_enable (questo oggetto è disponibile se è definito uno stepper):
steppers["<stepper>"]: Restituisce True se lo stepper specificato è abilitato.
system_stats¶
Le seguenti informazioni sono disponibili nell'oggetto system_stats (questo oggetto è sempre disponibile):
sysload,cputime,memavail: informazioni sul sistema operativo del host e sul carico del processo.
sensori di temperatura¶
Le seguenti informazioni sono disponibili in
bme280 config_section_name, htu21d config_section_name, sht3x config_section_name, lm75 config_section_name, temperature_host config_section_name and temperature_combined config_section_name objects:
temperature: l'ultima temperatura letta dal sensore.humidity,pressure,gas: The last read values from the sensor (only on bme280, htu21d, sht3x and lm75 sensors).
temperature_fan¶
Le seguenti informazioni sono disponibili negli oggetti temperature_fan some_name:
temperature: l'ultima temperatura letta dal sensore.target: La temperatura target per la ventola.
temperature_sensor¶
Le seguenti informazioni sono disponibili negli oggetti temperature_sensor some_nome:
temperature: l'ultima temperatura letta dal sensore.measured_min_temp,measured_max_temp: la temperatura più bassa e più alta vista dal sensore dall'ultimo riavvio del software host Klipper.
driver tmc¶
Le seguenti informazioni sono disponibili negli oggetti TMC stepper driver (ad esempio, [tmc2208 stepper_x]):
mcu_phase_offset: La posizione dello stepper del microcontrollore corrispondente alla fase "zero" del driver. Questo campo può essere nullo se l'offset di fase non è noto.phase_offset_position: La "posizione comandata" corrispondente alla fase "zero" del driver. Questo campo può essere nullo se l'offset di fase non è noto.drv_status: i risultati dell'ultima query sullo stato del driver. (Sono riportati solo i campi diversi da zero.) Questo campo sarà nullo se il driver non è abilitato (e quindi non viene interrogato periodicamente).temperature: The internal temperature reported by the driver. This field will be null if the driver is not enabled or if the driver does not support temperature reporting.run_current: La corrente di esecuzione attualmente impostata.hold_current: La corrente di mantenimento attualmente impostata.
toolhead¶
Le seguenti informazioni sono disponibili nell'oggetto toolhead (questo oggetto è sempre disponibile):
position: The last commanded position of the toolhead relative to the coordinate system specified in the config file. This value is encoded as a coordinate.extruder: il nome dell'estrusore attualmente attivo. Ad esempio, in una macro si potrebbe usareprinter[printer.toolhead.extruder].targetper ottenere la temperatura target dell'estrusore corrente.homed_axes: Gli assi cartesiani correnti considerati in uno stato "homed". Questa è una stringa contenente uno o più di "x", "y", "z".axis_minimum,axis_maximum: The axis travel limits (mm) after homing. This value is encoded as a coordinate.- Per le stampanti Delta,
cone_start_zè l'altezza z massima al raggio massimo (printer.toolhead.cone_start_z). max_velocity,max_accel,minimum_cruise_ratio,square_corner_velocity: The current printing limits that are in effect. This may differ from the config file settings if aSET_VELOCITY_LIMIT(orM204) command alters them at run-time.stalls: il numero totale di volte (dall'ultimo riavvio) che la stampante ha dovuto essere messa in pausa perché la testina si muoveva più velocemente di quanto fosse possibile leggere i movimenti dall'input del G-code.extra_axes: Provides a mechanism for finding the coordinate component for extra axes available in standardG1type move commands. See the Accessing Coordinates section for details.
dual_carriage¶
The following information is available in dual_carriage on a cartesian, hybrid_corexy or hybrid_corexz robot
carriage_0: The mode of the carriage 0. Possible values are: "INACTIVE" and "PRIMARY".carriage_1: The mode of the carriage 1. Possible values are: "INACTIVE", "PRIMARY", "COPY", and "MIRROR".
On a generic_cartesian kinematic, the following information is available in dual_carriage:
carriages["<carriage>"]: The mode of the carriage<carriage>. Possible values are "INACTIVE" and "PRIMARY" for the primary carriage and "INACTIVE", "PRIMARY", "COPY", and "MIRROR" for the dual carriage.
virtual_sdcard¶
Le seguenti informazioni sono disponibili nell'oggetto virtual_sdcard:
is_active: Restituisce True se una stampa da file è attualmente attiva.progress: una stima dello stato di avanzamento della stampa corrente (in base alla dimensione del file e alla posizione del file).file_path: un percorso completo del file per il file attualmente caricato.file_position: la posizione corrente (in byte) di una stampa attiva.file_size: la dimensione (in byte) del file attualmente caricato.
webhooks¶
Le seguenti informazioni sono disponibili nell'oggetto webhooks (questo oggetto è sempre disponibile):
state: restituisce una stringa che indica lo stato corrente di Klipper. I valori possibili sono: "ready", "startup", "shutdown", "error".state_message: una stringa leggibile dall'uomo che fornisce un contesto aggiuntivo sullo stato corrente di Klipper.
z_thermal_adjust¶
Le seguenti informazioni sono disponibili nell'oggetto z_thermal_adjust (questo oggetto è disponibile se z_thermal_adjust è definito).
enabled: Restituisce True se la regolazione è abilitata.temperature: temperatura attuale (livellata) del sensore definito. [grado C]measured_min_temp: temperatura minima misurata. [degC]measured_max_temp: Temperatura massima misurata. [degC]current_z_adjust: Ultima regolazione Z calcolata [mm].z_adjust_ref_temperature:Temperatura di riferimento corrente utilizzata per il calcolo di Zcurrent_z_adjust[degC].
z_tilt¶
Le seguenti informazioni sono disponibili nell'oggetto z_tilt (questo oggetto è disponibile se z_tilt è definito):
applied: Vero se il processo di livellamento z-tilt è stato eseguito e completato con successo.
Accessing Coordinates¶
Some status fields provide a "coordinate". For macro users these fields may be accessed by component name (eg,{printer.toolhead.position.x}), where the component name may be "x", "y", or "z".
For developers using the Klipper API Server these fields are transmitted as a list - for example: {"toolhead": {"position": [1.0, 2.0, 3.0, 7.3, 19.2]}} . The first three components of the list correspond with the x, y, and z axes.
A coordinate will typically have at least 3 components (x, y, and z), however there may also be additional components. Care should be taken when accessing any of these additional components as the ordering and number of components may change at run-time.
One may use {printer.gcode_move.axis_map} and/or {printer.toolhead.extra_axes} to determine the number of components and the ordering of components. For example, to access the "E" component one could use {printer.toolhead.position[printer.gcode_move.axis_map.E]}. Or, if one wanted to find the component associated with the "extruder" object, one could use {printer.toolhead.position[printer.toolhead.extra_axes.extruder]}.