核心用法
本 skill 通过 Snapmaker HTTP API v1 与 2.0 系列打印机通信,实现完整的远程运维能力。用户需先在 ~/clawd/snapmaker/config.json 配置 IP、端口(默认 8080)及从 Luban App 获取的 Token。基础流程涵盖:
1. 设备发现:UDP 广播(端口 20054)或指定 IP 探测
2. 状态监控:实时获取温度、坐标、进度、耗材/舱门状态等 15+ 字段
3. 任务管理:上传 G-code、启停暂停打印,支持 --yes 跳过确认
4. 事件通知:轮询检测打印完成、断料、开门等异常
显著优点
- 原生 API 对接:直接调用官方 HTTP 接口,非逆向破解,协议稳定
- 安全设计完善:所有破坏性操作默认需确认,禁止活跃打印期覆盖文件
- 多维度监控:JSON 输出便于管道化集成,配合
jq可构建自定义监控脚本 - 网络弹性:UDP 发现失败后自动回退 HTTP 探测,支持跨子网场景
潜在缺点与局限性
- 会话依赖:打印机断电后 Token 会话失效,需重新调用
/connect - 无加密传输:HTTP 明文通信,Token 与 G-code 内容存在局域网嗅探风险
- 硬件锁定:仅支持 Snapmaker 2.0 系列(A250/A350 等), Artisan 及第一代不兼容
- Token 获取繁琐:需物理接触打印机触摸屏授权,无法完全无人值守
适合人群
- 拥有 Snapmaker 2.0 打印机、具备基础网络配置能力的创客与小型工作室
- 希望将打印任务集成至 CI/CD 或家庭自动化系统的进阶用户
常规风险
| 风险类型 | 说明 |
|---------|------|
| 误操作风险 | `--yes`/`--force` 可能中断数小时打印进度 |
| 网络暴露 | 8080 端口若暴露公网,Token 可被暴力枚举 |
| 热端安全 | 远程启动缺乏物理确认,可能引发烫伤或火灾 |
| 依赖风险 | Python 3.6+ 与 `requests` 库需自行维护 |
建议在隔离 VLAN 或 VPN 内使用,并配合防火墙限制源 IP。