finished BambuMQTT schemas

This commit is contained in:
2026-09-05 14:34:23 +00:00
parent 0c7f6510ce
commit 8bdade66c2
24 changed files with 516 additions and 5 deletions
+52
View File
@@ -0,0 +1,52 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"name": "Bambu Lab MQTT Wire Schemas",
"version": "1.0.0",
"description": "JSON Schemas for Bambu Lab 3D Printers (X1/P1/A1 series)",
"default_topics": [
{
"topic": "device/{{DEVICE_ID}}/report",
"qos": 1,
"color": "#22c55e",
"description": "Printer real-time telemetry report stream"
},
{
"topic": "device/{{DEVICE_ID}}/request",
"qos": 1,
"color": "#6366f1",
"description": "Control requests sent to printer"
}
],
"topic_groups": [
{
"name": "Printer Telemetry (v1)",
"topic_pattern": "device/{{DEVICE_ID}}/report",
"schema": "v1/report.schema.json",
"description": "BambuReport dispatcher for push_status and print state pushes"
},
{
"name": "Command Requests (v1)",
"topic_pattern": "device/{{DEVICE_ID}}/request",
"schema": "v1/request.schema.json",
"description": "BambuRequest dispatcher for info, pushing, etc."
},
{
"name": "Printer Telemetry (v2)",
"topic_pattern": "device/{{DEVICE_ID}}/report",
"schema": "v2/report.schema.json",
"description": "BambuReport v2 dispatcher"
},
{
"name": "Command Requests (v2)",
"topic_pattern": "device/{{DEVICE_ID}}/request",
"schema": "v2/request.schema.json",
"description": "BambuRequest v2 dispatcher"
}
],
"hidden_schemas": [
"common/**",
"v1/common/**",
"v2/common/**",
"**/_*.schema.json"
]
}
+46 -1
View File
@@ -7,14 +7,59 @@
"minProperties": 1,
"maxProperties": 1,
"properties": {
"camera": {
"oneOf": [
{ "$ref": "report/camera/ipcam_record_set.schema.json" },
{ "$ref": "report/camera/ipcam_timelapse.schema.json" }
]
},
"info": {
"oneOf": [
{ "$ref": "report/info/get_version.schema.json" }
]
},
"mc_print": {
"oneOf": [
{ "$ref": "report/mc_print/push_info.schema.json" }
]
},
"print": {
"oneOf": [
{ "$ref": "report/print/push_status.schema.json" }
{ "$ref": "report/print/ams_change_filament.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" },
{ "$ref": "report/print/ams_user_setting.schema.json" },
{ "$ref": "report/print/gcode_file.schema.json" },
{ "$ref": "report/print/gcode_line.schema.json" },
{ "$ref": "report/print/pause.schema.json" },
{ "$ref": "report/print/print_option.schema.json" },
{ "$ref": "report/print/print_speed.schema.json" },
{ "$ref": "report/print/project_file.schema.json" },
{ "$ref": "report/print/push_status.schema.json" },
{ "$ref": "report/print/resume.schema.json" },
{ "$ref": "report/print/stop.schema.json" },
{ "$ref": "report/print/unload_filament.schema.json" }
]
},
"system": {
"oneOf": [
{ "$ref": "report/system/get_access_code.schema.json" },
{ "$ref": "report/system/ledctrl.schema.json" },
{ "$ref": "report/system/set_accessories.schema.json" }
]
},
"upgrade": {
"oneOf": [
{ "$ref": "report/upgrade/consistency_confirm.schema.json" },
{ "$ref": "report/upgrade/get_history.schema.json" },
{ "$ref": "report/upgrade/start.schema.json" },
{ "$ref": "report/upgrade/upgrade_confirm.schema.json" }
]
},
"xcam": {
"oneOf": [
{ "$ref": "report/xcam/xcam_control_set.json" }
]
}
},
@@ -0,0 +1,24 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/report/mc_print/push_info.schema.json",
"title": "McPrintPushInfoReport",
"description": "This message can't be requested - it's set automatically by the printer. [LINK] is for logs, [BMC] is for reported pressure advance calculated by lidar and [AMS][TASK] is per-AMS raw humidity",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "push_info" },
"param": {
"type": "string",
"anyOf": [
{ "pattern": "^\\[LINK\\] ?(?<log>.+)$" },
{ "pattern": "^\\[BMC\\] ?M900 K(?<k>\\d+\\.\\d+), L(?<l>\\d+\\.\\d+), M(?<m>\\d+\\.\\d+)$" },
{ "pattern": "^\\[AMS\\]\\[TASK\\] ?ams(?<ams_idx>\\d+) temp:(?<temp>\\d+\\.\\d+);humidity:(?<humidity_perc>\\d+)%;humidity_idx:(?<humidity_idx>[0-4]+)$" }
]
}
},
"required": ["param"]
}
]
}
@@ -0,0 +1,24 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/report/system/xcam_control_set.schema.json",
"title": "XcamControlSetReport",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "xcam_control_set" },
"control": { "type": "boolean" },
"print_halt": { "type": "boolean" },
"module_name": {
"type": "string",
"enum": [
"first_layer_inspector", "buildplate_marker_detector", "printing_monitor",
"pileup_detector", "airprint_detector", "clump_detector", "spaghetti_detector"
]
}
},
"required": ["module_name", "control", "print_halt"]
}
]
}
+43 -2
View File
@@ -7,14 +7,55 @@
"minProperties": 1,
"maxProperties": 1,
"properties": {
"camera": {
"oneOf": [
{ "$ref": "request/camera/ipcam_record_set.schema.json" },
{ "$ref": "request/camera/ipcam_timelapse.schema.json" }
]
},
"info": {
"oneOf": [
{ "$ref": "request/info/get_version.schema.json" }
]
},
"pushing": {
"print": {
"oneOf": [
{ "$ref": "request/pushing/pushall.schema.json" }
{ "$ref": "request/print/ams_change_filament.schema.json" },
{ "$ref": "request/print/ams_control.schema.json" },
{ "$ref": "request/print/ams_filament_setting.schema.json" },
{ "$ref": "request/print/ams_get_rfid.schema.json" },
{ "$ref": "request/print/ams_user_setting.schema.json" },
{ "$ref": "request/print/calibration.schema.json" },
{ "$ref": "request/print/gcode_file.schema.json" },
{ "$ref": "request/print/gcode_line.schema.json" },
{ "$ref": "request/print/pause.schema.json" },
{ "$ref": "request/print/print_option.schema.json" },
{ "$ref": "request/print/print_speed.schema.json" },
{ "$ref": "request/print/project_file.schema.json" },
{ "$ref": "request/print/resume.schema.json" },
{ "$ref": "request/print/skip_objects.schema.json" },
{ "$ref": "request/print/stop.schema.json" },
{ "$ref": "request/print/unload_filament.schema.json" }
]
},
"system": {
"oneOf": [
{ "$ref": "request/system/get_access_code.schema.json" },
{ "$ref": "request/system/ledctrl.schema.json" },
{ "$ref": "request/system/set_accessories.schema.json" }
]
},
"upgrade": {
"oneOf": [
{ "$ref": "request/upgrade/consistency_confirm.schema.json" },
{ "$ref": "request/upgrade/get_history.schema.json" },
{ "$ref": "request/upgrade/start.schema.json" },
{ "$ref": "request/upgrade/upgrade_confirm.schema.json" }
]
},
"xcam": {
"oneOf": [
{ "$ref": "request/xcam/xcam_control_set.json" }
]
}
},
@@ -0,0 +1,24 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/request/system/xcam_control_set.schema.json",
"title": "XcamControlSetRequest",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "xcam_control_set" },
"control": { "type": "boolean" },
"print_halt": { "type": "boolean" },
"module_name": {
"type": "string",
"enum": [
"first_layer_inspector", "buildplate_marker_detector", "printing_monitor",
"pileup_detector", "airprint_detector", "clump_detector", "spaghetti_detector"
]
}
},
"required": ["module_name", "control", "print_halt"]
}
]
}
+47 -1
View File
@@ -7,14 +7,60 @@
"minProperties": 1,
"maxProperties": 1,
"properties": {
"camera": {
"oneOf": [
{ "$ref": "report/camera/ipcam_record_set.schema.json" },
{ "$ref": "report/camera/ipcam_timelapse.schema.json" }
]
},
"info": {
"oneOf": [
{ "$ref": "report/info/get_version.schema.json" }
]
},
"mc_print": {
"oneOf": [
{ "$ref": "report/mc_print/push_info.schema.json" }
]
},
"print": {
"oneOf": [
{ "$ref": "report/print/push_status.schema.json" }
{ "$ref": "report/print/ams_change_filament.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" },
{ "$ref": "report/print/ams_user_setting.schema.json" },
{ "$ref": "report/print/calibration.schema.json" },
{ "$ref": "report/print/gcode_file.schema.json" },
{ "$ref": "report/print/gcode_line.schema.json" },
{ "$ref": "report/print/pause.schema.json" },
{ "$ref": "report/print/print_option.schema.json" },
{ "$ref": "report/print/print_speed.schema.json" },
{ "$ref": "report/print/project_file.schema.json" },
{ "$ref": "report/print/push_status.schema.json" },
{ "$ref": "report/print/resume.schema.json" },
{ "$ref": "report/print/stop.schema.json" },
{ "$ref": "report/print/unload_filament.schema.json" }
]
},
"system": {
"oneOf": [
{ "$ref": "report/system/get_access_code.schema.json" },
{ "$ref": "report/system/ledctrl.schema.json" },
{ "$ref": "report/system/set_accessories.schema.json" }
]
},
"upgrade": {
"oneOf": [
{ "$ref": "report/upgrade/consistency_confirm.schema.json" },
{ "$ref": "report/upgrade/get_history.schema.json" },
{ "$ref": "report/upgrade/start.schema.json" },
{ "$ref": "report/upgrade/upgrade_confirm.schema.json" }
]
},
"xcam": {
"oneOf": [
{ "$ref": "report/xcam/xcam_control_set.json" }
]
}
},
@@ -0,0 +1,24 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/report/mc_print/push_info.schema.json",
"title": "McPrintPushInfoReport",
"description": "This message can't be requested - it's set automatically by the printer. [LINK] is for logs, [BMC] is for reported pressure advance calculated by lidar and [AMS][TASK] is per-AMS raw humidity",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "push_info" },
"param": {
"type": "string",
"anyOf": [
{ "pattern": "^\\[LINK\\] ?(?<log>.+)$" },
{ "pattern": "^\\[BMC\\] ?M900 K(?<k>\\d+\\.\\d+), L(?<l>\\d+\\.\\d+), M(?<m>\\d+\\.\\d+)$" },
{ "pattern": "^\\[AMS\\]\\[TASK\\] ?ams(?<ams_idx>\\d+) temp:(?<temp>\\d+\\.\\d+);humidity:(?<humidity_perc>\\d+)%;humidity_idx:(?<humidity_idx>[0-4]+)$" }
]
}
},
"required": ["param"]
}
]
}
@@ -0,0 +1,24 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/report/system/xcam_control_set.schema.json",
"title": "XcamControlSetReport",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "xcam_control_set" },
"control": { "type": "boolean" },
"print_halt": { "type": "boolean" },
"module_name": {
"type": "string",
"enum": [
"first_layer_inspector", "buildplate_marker_detector", "printing_monitor",
"pileup_detector", "airprint_detector", "clump_detector", "spaghetti_detector"
]
}
},
"required": ["module_name", "control", "print_halt"]
}
]
}
+46
View File
@@ -7,10 +7,56 @@
"minProperties": 1,
"maxProperties": 1,
"properties": {
"camera": {
"oneOf": [
{ "$ref": "request/camera/ipcam_record_set.schema.json" },
{ "$ref": "request/camera/ipcam_timelapse.schema.json" }
]
},
"info": {
"oneOf": [
{ "$ref": "request/info/get_version.schema.json" }
]
},
"print": {
"oneOf": [
{ "$ref": "request/print/ams_change_filament.schema.json" },
{ "$ref": "request/print/ams_control.schema.json" },
{ "$ref": "request/print/ams_filament_setting.schema.json" },
{ "$ref": "request/print/ams_get_rfid.schema.json" },
{ "$ref": "request/print/ams_user_setting.schema.json" },
{ "$ref": "request/print/calibration.schema.json" },
{ "$ref": "request/print/gcode_file.schema.json" },
{ "$ref": "request/print/gcode_line.schema.json" },
{ "$ref": "request/print/pause.schema.json" },
{ "$ref": "request/print/print_option.schema.json" },
{ "$ref": "request/print/print_speed.schema.json" },
{ "$ref": "request/print/project_file.schema.json" },
{ "$ref": "request/print/resume.schema.json" },
{ "$ref": "request/print/skip_objects.schema.json" },
{ "$ref": "request/print/stop.schema.json" },
{ "$ref": "request/print/unload_filament.schema.json" }
]
},
"system": {
"oneOf": [
{ "$ref": "request/system/get_access_code.schema.json" },
{ "$ref": "request/system/ledctrl.schema.json" },
{ "$ref": "request/system/set_accessories.schema.json" }
]
},
"upgrade": {
"oneOf": [
{ "$ref": "request/upgrade/consistency_confirm.schema.json" },
{ "$ref": "request/upgrade/get_history.schema.json" },
{ "$ref": "request/upgrade/start.schema.json" },
{ "$ref": "request/upgrade/upgrade_confirm.schema.json" }
]
},
"xcam": {
"oneOf": [
{ "$ref": "request/xcam/xcam_control_set.json" }
]
}
},
"additionalProperties": false
@@ -0,0 +1,24 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/request/system/xcam_control_set.schema.json",
"title": "XcamControlSetRequest",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "xcam_control_set" },
"control": { "type": "boolean" },
"print_halt": { "type": "boolean" },
"module_name": {
"type": "string",
"enum": [
"first_layer_inspector", "buildplate_marker_detector", "printing_monitor",
"pileup_detector", "airprint_detector", "clump_detector", "spaghetti_detector"
]
}
},
"required": ["module_name", "control", "print_halt"]
}
]
}