# Conflicts: # moonraker/components/file_manager/metadata.py resolved by ada08d4574e13099a392bba4b3ebe34485807c0a version
668 lines
21 KiB
Markdown
668 lines
21 KiB
Markdown
# Printer Administration
|
|
|
|
These endpoints provide access to printer state and printer control.
|
|
Klippy must be connected to Moonraker to receive a successful response,
|
|
and in many cases Klippy must be in the `ready` state.
|
|
|
|
Most of these endpoints are registered with Moonraker by Klipper.
|
|
Requests pass from the frontend through Moonraker directly to Klipper.
|
|
Moonraker does not intervene.
|
|
|
|
## Get Klippy host information
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
GET /printer/info
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "printer.info",
|
|
"id": 5445
|
|
}
|
|
```
|
|
|
|
//// collapse-code
|
|
```{.json .apiresponse title="Example Response"}
|
|
{
|
|
"state": "ready",
|
|
"state_message": "Printer is ready",
|
|
"hostname": "pi-debugger",
|
|
"klipper_path": "/home/pi/klipper",
|
|
"python_path": "/home/pi/klipper/venv/bin/python",
|
|
"process_id": 275124,
|
|
"user_id": 1000,
|
|
"group_id": 1000,
|
|
"log_file": "/home/pi/printer_data/logs/klippy.log",
|
|
"config_file": "/home/pi/printer_data/config/printer.cfg",
|
|
"software_version": "v0.12.0-85-gd785b396",
|
|
"cpu_info": "4 core ?"
|
|
}
|
|
```
|
|
////
|
|
|
|
/// api-response-spec
|
|
open: True
|
|
| Field | Type | Description |
|
|
| ------------------ | :----: | ----------------------------------------------------- |
|
|
| `state` | string | Klippy's current [state](#klippy-state-desc). |
|
|
| `state_message` | string | A message describing Klippy's current state. |
|
|
| `hostname` | string | Hostname of the machine running Klippy. |
|
|
| `klipper_path` | string | Path on disk to the Klipper application. |
|
|
| `python_path` | string | Path on disk to the Python executable running Klippy. |
|
|
| `process_id` | int | The PID of the current Klippy process. |
|
|
| `user_id` | int | The UID of the user the Klippy process belongs to. |
|
|
| `group_id` | int | The GID of the group the Klippy process belongs to. |
|
|
| `log_file` | string | Path on disk to Klipper's log file. |
|
|
| `configfile` | string | Path on disk to Klipper's configuration file. |
|
|
| `software_version` | string | Version of the currently running instance of Klipper. |
|
|
| `cpu_info` | string | A brief description of the host machine's CPU. |
|
|
|
|
| State | Description |
|
|
| ---------- | ------------------------------------------------------- |
|
|
| `ready` | Klippy has initialized and is ready for commands. |
|
|
| `startup` | Klippy is currently in its startup phase. |
|
|
| `error` | Klippy encountered an error during startup. |
|
|
| `shutdown` | Klippy is in the shutdown state. This can be initiated |
|
|
| | by the user via an emergency stop, or by the software |^
|
|
| | if it encounters a critical error during operation. |^
|
|
{ #klippy-state-desc } Klippy State
|
|
///
|
|
|
|
## Emergency Stop
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /printer/emergency_stop
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "printer.emergency_stop",
|
|
"id": 4564
|
|
}
|
|
```
|
|
|
|
/// Note
|
|
This endpoint will immediately halt the printer and put it in a "shutdown"
|
|
state. It should be used to implement an "emergency stop" button and
|
|
also used if a user enters `M112`(emergency stop) via a console.
|
|
///
|
|
|
|
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|
|
|
|
## Host Restart
|
|
|
|
Requests a Klipper "soft" restart. This will reload the Klippy application
|
|
and configuration. Connected MCUs will not be reset.
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /printer/restart
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "printer.restart",
|
|
"id": 4894
|
|
}
|
|
```
|
|
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|
|
|
|
## Firmware Restart
|
|
|
|
Requests a complete Klipper restart. Both the Klippy Application and connected
|
|
MCUs will be reset.
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /printer/firmware_restart
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "printer.firmware_restart",
|
|
"id": 8463
|
|
}
|
|
```
|
|
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|
|
|
|
## Printer Status Requests
|
|
|
|
### List loaded printer objects
|
|
|
|
Returns a list of Klipper `printer objects` that are currently loaded.
|
|
This can be used to determine if a specific object is available for query
|
|
and/or subscription.
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
GET /printer/objects/list
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "printer.objects.list",
|
|
"id": 1454
|
|
}
|
|
```
|
|
|
|
//// collapse-code
|
|
```{.json .apiresponse title="Example Response"}
|
|
{
|
|
"objects": [
|
|
"gcode",
|
|
"webhooks",
|
|
"configfile",
|
|
"mcu",
|
|
"mcu linux",
|
|
"heaters",
|
|
"bme280 chamber",
|
|
"temperature_sensor chamber",
|
|
"filament_switch_sensor extruder_sensor",
|
|
"output_pin sensor_toggle",
|
|
"gcode_move",
|
|
"bed_mesh",
|
|
"exclude_object",
|
|
"temperature_host RPi",
|
|
"temperature_sensor RPi",
|
|
"gcode_macro TURN_OFF_MOTORS",
|
|
"gcode_macro SET_HOMING_CURRENT",
|
|
"temperature_sensor ambient",
|
|
"gcode_macro query_bme280",
|
|
"pause_resume",
|
|
"print_stats",
|
|
"virtual_sdcard",
|
|
"probe",
|
|
"stepper_enable",
|
|
"tmc2130 stepper_x",
|
|
"tmc2130 stepper_y",
|
|
"tmc2130 stepper_z",
|
|
"tmc2130 extruder",
|
|
"heater_bed",
|
|
"heater_fan nozzle_cooling_fan",
|
|
"fan",
|
|
"menu",
|
|
"display_status",
|
|
"output_pin BEEPER_pin",
|
|
"idle_timeout",
|
|
"motion_report",
|
|
"query_endstops",
|
|
"system_stats",
|
|
"manual_probe",
|
|
"toolhead",
|
|
"extruder"
|
|
]
|
|
}
|
|
```
|
|
////
|
|
|
|
/// api-response-spec
|
|
open: True
|
|
| Field | Type | Description |
|
|
| --------- | :------: | ------------------------------------------------ |
|
|
| `objects` | [string] | A list Klipper printer objects currently loaded. |
|
|
///
|
|
|
|
### Query printer object status
|
|
|
|
Requests the status of a provided set of printer objects.
|
|
|
|
/// Tip
|
|
See the [Printer Objects](../printer_objects.md) document
|
|
for details on the objects available for query.
|
|
///
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /printer/objects/query
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"objects": {
|
|
"gcode_move": null,
|
|
"toolhead": ["position", "status"]
|
|
}
|
|
}
|
|
```
|
|
|
|
/// details | Using the Query String
|
|
The HTTP Request may also be performed using the query string. It is
|
|
recommended to send the request in the body unless otherwise not possible.
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
GET /printer/objects/query?gcode_move&toolhead&extruder=target,temperature
|
|
```
|
|
|
|
The above will request a status update for all `gcode_move` and `toolhead`
|
|
attributes. Only the `temperature` and `target` attributes are requested
|
|
for the `extruder`.
|
|
///
|
|
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "printer.objects.query",
|
|
"params": {
|
|
"objects": {
|
|
"gcode_move": null,
|
|
"toolhead": ["position", "status"]
|
|
}
|
|
},
|
|
"id": 4654
|
|
}
|
|
```
|
|
|
|
/// api-parameters
|
|
open: True
|
|
| Name | Type | Default | Description |
|
|
| --------- | :----: | ------------ | ------------------------------------------------------ |
|
|
| `objects` | object | **REQUIRED** | An object whose key, value pairs represent one or |
|
|
| | | | more [Printer Object Requests](#printer-obj-req-desc). |^
|
|
|
|
| Key Description | Value Description |
|
|
| ------------------------------- | ----------------------------------------------------------- |
|
|
| The `key`should be an available | The `value` specifies the attributes of the object that |
|
|
| Klipper printer object. | should be returned. If the value is `null` all attributes |^
|
|
| { width=40% } | will be returned. Alternatively a list of strings |^
|
|
| | specifying the desired attributes can be provided. |^
|
|
{ #printer-obj-req-desc } Printer Object Request
|
|
|
|
//// Note
|
|
If a requested printer object or attribute does not exist then the result
|
|
will be omitted from the response. No error is returned.
|
|
////
|
|
|
|
///
|
|
|
|
//// collapse-code
|
|
```{.json .apiresponse title="Example Response"}
|
|
{
|
|
"eventtime": 578243.57824499,
|
|
"status": {
|
|
"gcode_move": {
|
|
"absolute_coordinates": true,
|
|
"absolute_extrude": true,
|
|
"extrude_factor": 1,
|
|
"gcode_position": [0, 0, 0, 0],
|
|
"homing_origin": [0, 0, 0, 0],
|
|
"position": [0, 0, 0, 0],
|
|
"speed": 1500,
|
|
"speed_factor": 1
|
|
},
|
|
"toolhead": {
|
|
"position": [0, 0, 0, 0],
|
|
"status": "Ready"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
////
|
|
|
|
/// api-response-spec
|
|
open: True
|
|
| Field | Type | Description |
|
|
| ----------- | :----: | -------------------------------------------------------------- |
|
|
| `eventtime` | float | The time at which the status was received, according Klipper's |
|
|
| | | monotonic clock. |^
|
|
| `status` | object | An object containing the current state of the requested |
|
|
| | | printer objects. |^
|
|
{ #object-query-response-spec }
|
|
///
|
|
|
|
### Subscribe to printer object status updates
|
|
|
|
Requests status updates for a set of printer objects. A persistent
|
|
connection (Websocket or Unix Socket) is required to fulfill this
|
|
request.
|
|
|
|
Status updates for subscribed objects are sent asynchronously over the
|
|
connection. See the
|
|
[notify_status_update](./jsonrpc_notifications.md#subscription-updates)
|
|
notification for details.
|
|
|
|
/// Tip
|
|
See the [Printer Objects](../printer_objects.md) document
|
|
for details on the objects available for subscription.
|
|
///
|
|
|
|
```{.text .apirequest title="HTTP Request"}
|
|
Not available
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request (Websocket and Unix Socket Only)"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "printer.objects.subscribe",
|
|
"params": {
|
|
"objects": {
|
|
"gcode_move": null,
|
|
"toolhead": ["position", "status"]
|
|
}
|
|
},
|
|
"id": 5434
|
|
}
|
|
```
|
|
|
|
/// api-parameters
|
|
open: True
|
|
Parameters are identical to the [query](#query-printer-object-status)
|
|
status parameters. A new request will override a previous request.
|
|
If `objects` is set to an empty object then the subscription will be
|
|
cancelled.
|
|
///
|
|
|
|
//// collapse-code
|
|
```{.json .apiresponse title="Example Response"}
|
|
{
|
|
"eventtime": 578243.57824499,
|
|
"status": {
|
|
"gcode_move": {
|
|
"absolute_coordinates": true,
|
|
"absolute_extrude": true,
|
|
"extrude_factor": 1,
|
|
"gcode_position": [0, 0, 0, 0],
|
|
"homing_origin": [0, 0, 0, 0],
|
|
"position": [0, 0, 0, 0],
|
|
"speed": 1500,
|
|
"speed_factor": 1,
|
|
},
|
|
"toolhead": {
|
|
"position": [0, 0, 0, 0],
|
|
"status": "Ready"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
////
|
|
|
|
/// api-response-spec
|
|
open: True
|
|
The response spec is identical to the [query response specification](#object-query-response-spec)
|
|
The response may be used to initialize local state without performing a
|
|
separate query.
|
|
///
|
|
|
|
### Query Endstops
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
GET /printer/query_endstops/status
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "printer.query_endstops.status",
|
|
"id": 3456
|
|
}
|
|
```
|
|
|
|
//// collapse-code
|
|
```{.json .apiresponse title="Example Response"}
|
|
{
|
|
"x": "TRIGGERED",
|
|
"y": "open",
|
|
"z": "open"
|
|
}
|
|
```
|
|
////
|
|
|
|
/// api-response-spec
|
|
open: True
|
|
| Field | Type | Description |
|
|
| ---------- | :----: | ----------------------------------------------------------- |
|
|
| *variable* | string | The field is the name of the registered endstop. The value |
|
|
| | | will be `open` or `TRIGGERED`. |^
|
|
///
|
|
|
|
## GCode APIs
|
|
|
|
### Run a gcode command
|
|
|
|
Executes a gcode command. Multiple commands may be executed by separating
|
|
them with a newline (`\n`). The request returns when the command or series
|
|
of commands have completed, or when the command results in an error.
|
|
|
|
/// warning
|
|
When `M112`(emergency stop) is requested via this endpoint it will not
|
|
immediately stop the printer. `M112` will be placed on the gcode queue and
|
|
executed after all previous gcodes are complete. If a frontend detects
|
|
`M112` via user input (such as a console) it should request the
|
|
`/printer/emergency_stop` endpoint to immediately halt the printer. This
|
|
may be done in addition to sending the `M112` gcode if desired.
|
|
///
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /printer/gcode/script
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"script": "G28"
|
|
}
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "printer.gcode.script",
|
|
"params": {
|
|
"script": "G28"
|
|
},
|
|
"id": 7466}
|
|
```
|
|
|
|
/// api-parameters
|
|
open: True
|
|
| Name | Type | Default | Description |
|
|
| -------- | :----: | ------------ | ------------------------------------------------- |
|
|
| `script` | string | **REQUIRED** | A GCode Command to run. Multiple commands may be |
|
|
| | | | specified, separated by a newline (`\n`). |^
|
|
///
|
|
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|
|
|
|
### Get GCode Help
|
|
|
|
Retrieves a list of registered GCode Command Descriptions. Not all registered
|
|
GCode commands have a description, so this list should not be treated as an
|
|
exhaustive list of all supported commands.
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
GET /printer/gcode/help
|
|
```
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "printer.gcode.help",
|
|
"id": 4645
|
|
}
|
|
```
|
|
|
|
//// collapse-code
|
|
```{.json .apiresponse title="Example Response"}
|
|
{
|
|
"RESTART": "Reload config file and restart host software",
|
|
"FIRMWARE_RESTART": "Restart firmware, host, and reload config",
|
|
"STATUS": "Report the printer status",
|
|
"HELP": "Report the list of available extended G-Code commands",
|
|
"SAVE_CONFIG": "Overwrite config file and restart",
|
|
"SHUTDOWN_MACHINE": "G-Code macro",
|
|
"SET_GCODE_VARIABLE": "Set the value of a G-Code macro variable",
|
|
"REBOOT_MACHINE": "G-Code macro",
|
|
"UPDATE_DELAYED_GCODE": "Update the duration of a delayed_gcode",
|
|
"TURN_OFF_HEATERS": "Turn off all heaters",
|
|
"TEMPERATURE_WAIT": "Wait for a temperature on a sensor",
|
|
"QUERY_ADC": "Report the last value of an analog pin",
|
|
"QUERY_FILAMENT_SENSOR": "Query the status of the Filament Sensor",
|
|
"SET_FILAMENT_SENSOR": "Sets the filament sensor on/off",
|
|
"SET_PIN": "Set the value of an output pin",
|
|
"BED_MESH_CALIBRATE": "Perform Mesh Bed Leveling",
|
|
"BED_MESH_PROFILE": "Bed Mesh Persistent Storage management",
|
|
"BED_MESH_OUTPUT": "Retrieve interpolated grid of probed z-points",
|
|
"BED_MESH_MAP": "Serialize mesh and output to terminal",
|
|
"BED_MESH_CLEAR": "Clear the Mesh so no z-adjustment is made",
|
|
"BED_MESH_OFFSET": "Add X/Y offsets to the mesh lookup",
|
|
"SET_GCODE_OFFSET": "Set a virtual offset to g-code positions",
|
|
"SAVE_GCODE_STATE": "Save G-Code coordinate state",
|
|
"RESTORE_GCODE_STATE": "Restore a previously saved G-Code state",
|
|
"GET_POSITION": "Return information on the current location of the toolhead",
|
|
"EXCLUDE_OBJECT_START": "Marks the beginning the current object as labeled",
|
|
"EXCLUDE_OBJECT_END": "Marks the end the current object",
|
|
"EXCLUDE_OBJECT": "Cancel moves inside a specified objects",
|
|
"EXCLUDE_OBJECT_DEFINE": "Provides a summary of an object",
|
|
"TURN_OFF_MOTORS": "G-Code macro",
|
|
"CLEAR_PAUSE": "Clears the current paused state without resuming the print",
|
|
"SET_PRINT_STATS_INFO": "Pass slicer info like layer act and total to klipper",
|
|
"SDCARD_RESET_FILE": "Clears a loaded SD File. Stops the print if necessary",
|
|
"SDCARD_PRINT_FILE": "Loads a SD file and starts the print. May include files in subdirectories.",
|
|
"RESPOND": "Echo the message prepended with a prefix",
|
|
"PROBE": "Probe Z-height at current XY position",
|
|
"QUERY_PROBE": "Return the status of the z-probe",
|
|
"PROBE_CALIBRATE": "Calibrate the probe's z_offset",
|
|
"PROBE_ACCURACY": "Probe Z-height accuracy at current XY position",
|
|
"Z_OFFSET_APPLY_PROBE": "Adjust the probe's z_offset",
|
|
"GET_CURRENT_SKEW": "Report current printer skew",
|
|
"CALC_MEASURED_SKEW": "Calculate skew from measured print",
|
|
"SET_SKEW": "Set skew based on lengths of measured object",
|
|
"SKEW_PROFILE": "Profile management for skew_correction",
|
|
"SET_STEPPER_ENABLE": "Enable/disable individual stepper by name",
|
|
"SET_TMC_FIELD": "Set a register field of a TMC driver",
|
|
"INIT_TMC": "Initialize TMC stepper driver registers",
|
|
"SET_TMC_CURRENT": "Set the current of a TMC driver",
|
|
"DUMP_TMC": "Read and display TMC stepper driver registers",
|
|
"PID_CALIBRATE": "Run PID calibration test",
|
|
"SET_HEATER_TEMPERATURE": "Sets a heater temperature",
|
|
"SET_DISPLAY_TEXT": "Set or clear the display message",
|
|
"SET_DISPLAY_GROUP": "Set the active display group",
|
|
"STEPPER_BUZZ": "Oscillate a given stepper to help id it",
|
|
"FORCE_MOVE": "Manually move a stepper; invalidates kinematics",
|
|
"SET_KINEMATIC_POSITION": "Force a low-level kinematic position",
|
|
"SET_IDLE_TIMEOUT": "Set the idle timeout in seconds",
|
|
"QUERY_ENDSTOPS": "Report on the status of each endstop",
|
|
"SET_VELOCITY_LIMIT": "Set printer velocity limits",
|
|
"MANUAL_PROBE": "Start manual probe helper script",
|
|
"TUNING_TOWER": "Tool to adjust a parameter at each Z height",
|
|
"SET_PRESSURE_ADVANCE": "Set pressure advance parameters",
|
|
"SET_EXTRUDER_ROTATION_DISTANCE": "Set extruder rotation distance",
|
|
"SYNC_EXTRUDER_MOTION": "Set extruder stepper motion queue",
|
|
"SET_EXTRUDER_STEP_DISTANCE": "Set extruder step distance",
|
|
"SYNC_STEPPER_TO_EXTRUDER": "Set extruder stepper",
|
|
"ACTIVATE_EXTRUDER": "Change the active extruder",
|
|
"BASE_PAUSE": "Renamed builtin of 'PAUSE'",
|
|
"BASE_RESUME": "Renamed builtin of 'RESUME'",
|
|
"BASE_CANCEL_PRINT": "Renamed builtin of 'CANCEL_PRINT'",
|
|
"ACCEPT": "Accept the current Z position",
|
|
"ABORT": "Abort manual Z probing tool",
|
|
"TESTZ": "Move to new Z height"
|
|
}
|
|
```
|
|
////
|
|
|
|
/// api-response-spec
|
|
open: True
|
|
| Field | Type | Description |
|
|
| ---------- | :----: | ----------------------------------------------------------------- |
|
|
| *variable* | string | The field is the name of the registered gcode command. The value |
|
|
| | | is a string containing the associated help descriptions. |^
|
|
|
|
//// Note
|
|
As mentioned previously, this list is not exhaustive. Help strings are not
|
|
available for default gcode handlers such as G1, G28, etc, nor are they
|
|
available for extended handlers that failed to register a description in
|
|
Klipper's python source.
|
|
////
|
|
|
|
///
|
|
|
|
## Print Job Management
|
|
|
|
### Start a print job
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /printer/print/start?filename=test_print.gcode
|
|
```
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "printer.print.start",
|
|
"params": {
|
|
"filename": "test_print.gcode"
|
|
},
|
|
"id": 4654
|
|
}
|
|
```
|
|
|
|
/// api-parameters
|
|
open: true
|
|
| Name | Type | Default | Description |
|
|
| ---------- | :----: | ------------ | --------------------------------------------------- |
|
|
| `filename` | string | **REQUIRED** | The name of the gcode file to print. May be a path |
|
|
| | | | relative to the gcode folder. |^
|
|
///
|
|
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|
|
|
|
### Pause a print job
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /printer/print/pause
|
|
```
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "printer.print.pause",
|
|
"id": 4564
|
|
}
|
|
```
|
|
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|
|
|
|
### Resume a print job
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /printer/print/resume
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "printer.print.resume",
|
|
"id": 1465
|
|
}
|
|
```
|
|
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|
|
|
|
### Cancel a print job
|
|
|
|
```{.http .apirequest title="HTTP Request"}
|
|
POST /printer/print/cancel
|
|
```
|
|
|
|
```{.json .apirequest title="JSON-RPC Request"}
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"method": "printer.print.cancel",
|
|
"id": 2578
|
|
}
|
|
```
|
|
|
|
```{.text .apiresponse title="Response"}
|
|
"ok"
|
|
```
|