名称: snapmaker
版本: 1.0.0
描述: 监控和控制 Snapmaker 3D 打印机(U1 型号,运行 Moonraker/Klipper)。适用于查看打印状态、温度、进度,或控制打印任务(暂停/恢复/取消)。触发词包括:"printer"、"3D print"、"Snapmaker"、"print status"、"nozzle temp"、"bed temp"。
许可证: MIT
通过 Moonraker API 控制 Snapmaker U1 打印机。
在 ~/clawd/config/snapmaker.json 创建配置文件:
{
"ip": "192.168.x.x",
"port": 80
}
或使用环境变量:
export SNAPMAKER_IP=192.168.x.x
export SNAPMAKER_PORT=80 # 可选,默认值为 80
配置查找顺序(优先级从高到低):
1. SNAPMAKER_IP 环境变量
2. ~/clawd/config/snapmaker.json
3. ~/.config/clawdbot/snapmaker.json
scripts/snapmaker.py status
scripts/snapmaker.py filament
显示每个料槽的 RFID 标签数据:材料类型、颜色(十六进制)、温度范围及传感器状态。
scripts/snapmaker.py monitor
scripts/snapmaker.py pause
scripts/snapmaker.py resume
scripts/snapmaker.py cancel
scripts/snapmaker.py temps
U1 打印机在 80 端口提供 Moonraker REST API:
| 端点 | 描述 |
|---|---|
/server/info |
服务器状态 |
/printer/info |
打印机信息 |
/printer/objects/query?heater_bed&extruder&print_stats |
状态查询 |
/printer/print/pause |
暂停打印 |
/printer/print/resume |
恢复打印 |
/printer/print/cancel |
取消打印 |
print_stats.state:standby(待机)、printing(打印中)、paused(已暂停)、complete(完成)、error(错误)print_stats.filename:当前打印文件print_stats.print_duration:已打印时长(秒)virtual_sdcard.progress:进度(0.0 到 1.0)heater_bed.temperature / heater_bed.target:热床当前/目标温度extruder.temperature / extruder.target:喷嘴当前/目标温度查询耗材 RFID 和传感器状态:
/printer/objects/query?filament_detect&filament_motion_sensor%20e0_filament&filament_motion_sensor%20e1_filament&filament_motion_sensor%20e2_filament&filament_motion_sensor%20e3_filament
包含 4 个料槽的 RFID 标签数据数组(若无标签则显示默认值):
| 字段 | 描述 |
|---|---|
VENDOR |
供应商,如 "Snapmaker";若无 RFID 则为 "NONE" |
MANUFACTURER |
制造商,例如 "Polymaker" |
MAIN_TYPE |
材料类型:"PLA"、"PETG"、"ABS" 等 |
SUB_TYPE |
材料变体:"SnapSpeed"、"generic" 等 |
RGB_1 |
颜色(十进制整数,需转换:#${(rgb>>16&0xFF).toString(16)}...) |
ARGB_COLOR |
带透明度的颜色(十进制) |
WEIGHT |
线轴重量(克) |
HOTEND_MIN_TEMP / HOTEND_MAX_TEMP |
喷嘴温度范围 |
BED_TEMP |
推荐热床温度 |
OFFICIAL |
是否为官方 Snapmaker 耗材 |
| 字段 | 描述 |
|---|---|
filament_detected |
布尔值 - 料槽中是否有耗材 |
enabled |
布尔值 - 传感器是否启用 |
注意: 料槽可能显示 filament_detected: true 但 VENDOR: NONE —— 这表示使用的是无 RFID 标签的第三方耗材。