Control your 3D printer via the Moonraker REST API.
- - Host: INLINECODE0
- Helper script: INLINECODE1
Quick Commands (via moonraker.sh)
CODEBLOCK0
API Reference
Base URL: INLINECODE2
Get Printer State
GET /printer/info
Returns firmware version, Klipper state (
ready,
error,
shutdown, etc.), hostname.
Get Print Stats + Temperatures
GET /printer/objects/query?print_stats&heater_bed&extruder
Returns:
- -
print_stats.state — standby, printing, paused, complete, INLINECODE11 - INLINECODE12 — currently loaded file
- INLINECODE13 — seconds elapsed
- INLINECODE14 — total time since start
- INLINECODE15 /
extruder.target — hotend actual/target °C - INLINECODE17 /
heater_bed.target — bed actual/target °C
Pause Print
CODEBLOCK3
Resume Print
CODEBLOCK4
Cancel Print
CODEBLOCK5
Emergency Stop
POST /printer/emergency_stop
⚠️ Immediately halts all motion and heaters. Klipper must be restarted via
POST /printer/firmware_restart before printing again.
List GCode Files
GET /server/files/list
Returns array of files in the
gcodes directory with name, size, and modified time.
Firmware Restart (after emergency stop)
POST /printer/firmware_restart
Raw curl Examples
CODEBLOCK9
Notes
- - All POST endpoints return
{"result": "ok"} on success. - If Klipper is in error/shutdown state, most commands will fail until a firmware restart.
- Progress percentage =
print_stats.print_duration / print_stats.total_duration * 100 (approximate; more accurate progress available via virtual_sdcard object). - For precise progress:
GET /printer/objects/query?virtual_sdcard → virtual_sdcard.progress (0.0–1.0).
技能名称: moonraker
详细描述:
通过Moonraker REST API控制您的3D打印机。
- - 主机地址: http://$MOONRAKER_HOST:7125
- 辅助脚本: {baseDir}/moonraker.sh
快速命令(通过moonraker.sh)
bash
moonraker.sh status # 打印进度、温度、状态
moonraker.sh pause # 暂停当前打印
moonraker.sh resume # 恢复暂停的打印
moonraker.sh cancel # 取消当前打印
moonraker.sh estop # 紧急停止(之后需要重启固件)
moonraker.sh files # 列出打印机上的GCode文件
API参考
基础URL: http://$MOONRAKER_HOST:7125
获取打印机状态
GET /printer/info
返回固件版本、Klipper状态(ready、error、shutdown等)、主机名。
获取打印统计和温度
GET /printer/objects/query?printstats&heaterbed&extruder
返回:
- - printstats.state — standby(待机)、printing(打印中)、paused(已暂停)、complete(已完成)、error(错误)
- printstats.filename — 当前加载的文件
- printstats.printduration — 已用秒数
- printstats.totalduration — 自开始以来的总时间
- extruder.temperature / extruder.target — 喷头实际/目标温度(°C)
- heaterbed.temperature / heaterbed.target — 热床实际/目标温度(°C)
暂停打印
POST /printer/print/pause
恢复打印
POST /printer/print/resume
取消打印
POST /printer/print/cancel
紧急停止
POST /printer/emergency_stop
⚠️ 立即停止所有运动和加热。再次打印前,必须通过 POST /printer/firmware_restart 重启Klipper。
列出GCode文件
GET /server/files/list
返回 gcodes 目录中的文件数组,包含名称、大小和修改时间。
固件重启(紧急停止后)
POST /printer/firmware_restart
原始curl示例
bash
打印机状态
curl -s http://$MOONRAKER_HOST:7125/printer/info | jq .
温度和打印统计
curl -s http://$MOONRAKER
HOST:7125/printer/objects/query?printstats&heater_bed&extruder | jq .
暂停
curl -s -X POST http://$MOONRAKER_HOST:7125/printer/print/pause | jq .
恢复
curl -s -X POST http://$MOONRAKER_HOST:7125/printer/print/resume | jq .
取消
curl -s -X POST http://$MOONRAKER_HOST:7125/printer/print/cancel | jq .
紧急停止
curl -s -X POST http://$MOONRAKER
HOST:7125/printer/emergencystop | jq .
列出文件
curl -s http://$MOONRAKER_HOST:7125/server/files/list | jq .
注意事项
- - 所有POST端点成功时返回 {result: ok}。
- 如果Klipper处于错误/关闭状态,大多数命令将失败,直到固件重启。
- 进度百分比 = printstats.printduration / printstats.totalduration * 100(近似值;更精确的进度可通过 virtualsdcard 对象获取)。
- 精确进度:GET /printer/objects/query?virtualsdcard → virtual_sdcard.progress(0.0–1.0)。