Fix print.calibration docs and add v1's missing report schema

Confirmed live: both BambuMQTT versions reply to a calibration request
with a dedicated print.calibration report, not just push_status - the
v1 request schema's own description said the opposite ("printer responds
with push_status instead of calibration"), and v2's report schema framed
this as a v1-vs-v2 contrast that no longer holds. Both descriptions
corrected; the printer does still send ordinary push_status updates
alongside the dedicated report as calibration progresses, same as any
other print job, not instead of it.

Added v1/report/print/calibration.schema.json (only existed for v2
before) and wired it into v1/report.schema.json's print category
dispatcher, which never listed it since the file didn't exist.
This commit is contained in:
2026-09-07 14:47:07 +00:00
parent f94e59a981
commit 88919d500d
4 changed files with 25 additions and 2 deletions
+1
View File
@@ -26,6 +26,7 @@
"print": {
"oneOf": [
{ "$ref": "report/print/ams_change_filament.schema.json" },
{ "$ref": "report/print/calibration.schema.json" },
{ "$ref": "report/print/ams_control.schema.json" },
{ "$ref": "report/print/ams_filament_setting.schema.json" },
{ "$ref": "report/print/ams_get_rfid.schema.json" },
@@ -0,0 +1,22 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/report/print/calibration.schema.json",
"title": "CalibrationReport",
"description": "The direct reply to request/print/calibration.schema.json - both BambuMQTT versions respond this way (v2 has its own identical report/print/calibration.schema.json). The printer still also sends ordinary `push_status` updates reflecting calibration progress alongside this report, e.g. `{ \"mc_print_stage\": 2, \"gcode_state\": \"RUNNING\", \"gcode_file_prepare_percent\": 100, \"subtask_name\": \"auto_cali_for_user_param.gcode\", \"gcode_file\": \"auto_cali_for_user_param.gcode\", \"print_type\": \"system\" }` - the same way any other print job in progress does, not a substitute for this report.",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "calibration" },
"option": {
"description": "Following bitmask is required for the `option` field: `if (lidarCalibration) bitmask |= 1; if (bedLevelling) bitmask |= 1 << 1; if (vibrationCompensation) bitmask |= 1 << 2; if (motorCancellation) bitmask |= 1 << 3;`",
"type": "integer",
"minimum": 0,
"maximum": 15
}
},
"required": ["option"]
}
]
}
@@ -2,7 +2,7 @@
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/request/print/calibration.schema.json",
"title": "CalibrationRequest",
"description": "Printer responds with `push_status` instead of `calibration` with following fields set: `{ \"mc_print_stage\": 2, \"gcode_state\": \"RUNNING\", \"gcode_file_prepare_percent\": 100, \"subtask_name\": \"auto_cali_for_user_param.gcode\", \"gcode_file\": \"auto_cali_for_user_param.gcode\", \"print_type\": \"system\" }`",
"description": "The printer responds with a dedicated `calibration` report (see request/print/calibration.schema.json's report/ counterpart) - not, as previously documented here, `push_status` in place of one. It still also sends ordinary `push_status` updates reflecting calibration progress alongside that report, e.g. `{ \"mc_print_stage\": 2, \"gcode_state\": \"RUNNING\", \"gcode_file_prepare_percent\": 100, \"subtask_name\": \"auto_cali_for_user_param.gcode\", \"gcode_file\": \"auto_cali_for_user_param.gcode\", \"print_type\": \"system\" }` - the same way any other print job in progress does, not a `calibration`-specific substitute for one.",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
@@ -2,7 +2,7 @@
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/report/print/calibration.schema.json",
"title": "CalibrationReport",
"description": "In contrast to Bambu MQTT v1, printer responds with `calibration` command, however it will still send `push_status` with following fields set: `{\"subtask_name\":\"auto_cali_for_user_param.gcode\",\"file\":\"/usr/etc/print/O1C2/auto_cali_for_user_param.gcode\",\"gcode_file\":\"/usr/etc/print/O1C2/auto_cali_for_user_param.gcode\",\"gcode_file_prepare_percent\":\"100\",\"gcode_state\":\"FAILED\",\"mc_print_stage\":\"1\"}`",
"description": "The direct reply to request/print/calibration.schema.json - both BambuMQTT versions respond this way (v1 has its own identical report/print/calibration.schema.json; earlier versions of this description incorrectly claimed v1 differed here). The printer still also sends ordinary `push_status` updates reflecting calibration progress alongside this report, e.g. `{\"subtask_name\":\"auto_cali_for_user_param.gcode\",\"file\":\"/usr/etc/print/O1C2/auto_cali_for_user_param.gcode\",\"gcode_file\":\"/usr/etc/print/O1C2/auto_cali_for_user_param.gcode\",\"gcode_file_prepare_percent\":\"100\",\"gcode_state\":\"FAILED\",\"mc_print_stage\":\"1\"}` - the same way any other print job in progress does, not a substitute for this report.",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{