Snapmaker:AI 驱动的 3D 打印机控制 - Openclaw Skills

作者:互联网

2026-03-24

AI教程

什么是 Snapmaker 打印机控制?

Snapmaker 技能使 AI 代理能够直接与运行 Klipper 和 Moonraker 的 Snapmaker U1 打印机进行交互。通过将此功能集成到您的 Openclaw Skills 集合中,开发人员可以通过编程方式检查喷嘴和热床温度、管理活动打印任务,并检索详细的 RFID 耗材数据,以确保高质量打印和硬件安全,而无需手动监控仪表板。

下载入口:https://github.com/openclaw/skills/tree/main/skills/lucakaufmann/snapmaker

安装与下载

1. ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install snapmaker

2. 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/ 工作区 /skills/

优先级:工作区 > 本地 > 内置

3. 提示词安装

将此提示词复制到 OpenClaw 即可自动安装。

请帮我使用 Clawhub 安装 snapmaker。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

Snapmaker 打印机控制 应用场景

  • 实时监控当前打印进度和预计完成时间
  • 在硬件故障期间远程暂停、恢复或取消打印
  • 使用集成的 RFID 传感器数据验证耗材类型、颜色和剩余重量
  • 在启动远程任务前检查热床和挤出机温度
  • 在集中式开发人员工作区内自动化打印机状态报告
Snapmaker 打印机控制 工作原理
  1. AI 代理根据用户触发词(如“打印状态”或“Snapmaker”)识别与打印机相关的意图。
  2. 该技能使用 SNAPMAKER_IP 环境变量或本地配置文件解析打印机的网络位置。
  3. 它向 80 端口的 Moonraker REST API 发送请求,查询特定的打印机对象,如加热器或 print_stats。
  4. 解析来自 Snapmaker 硬件的原始 JSON 响应,以提取遥测数据,如温度、进度或耗材 RFID 元数据。
  5. 处理后的数据返回给代理,以提供可操作的反馈或触发后续自动化步骤。

Snapmaker 打印机控制 配置指南

要将此打印机控制集成到您的 Openclaw Skills 中,您必须提供 Snapmaker U1 的连接详细信息。

~/clawd/config/snapmaker.json 创建配置文件:

{
  "ip": "192.168.x.x",
  "port": 80
}

或者,您可以使用环境变量进行快速设置:

export SNAPMAKER_IP=192.168.x.x
export SNAPMAKER_PORT=80

通过运行状态脚本验证连接:

scripts/snapmaker.py status

Snapmaker 打印机控制 数据架构与分类体系

该技能根据 Moonraker API 响应将打印机遥测和硬件元数据组织到以下模式中:

类别 字段 描述
print_stats state, filename, print_duration 当前任务状态(打印中、已暂停等)和时间
virtual_sdcard progress 指示完成情况的 0.0 到 1.0 之间的浮点值
heaters temperature, target 喷嘴(挤出机)和热床的当前值及目标值
filament_detect VENDOR, MAIN_TYPE, WEIGHT 包含材料类型和线轴重量的 RFID 数据
sensors filament_detected 物理运动和耗材检测传感器的布尔状态
name: snapmaker
version: 1.0.0
description: Monitor and control Snapmaker 3D printers (U1 with Moonraker/Klipper). Use when checking print status, temperatures, progress, or controlling prints (pause/resume/cancel). Triggers on "printer", "3D print", "Snapmaker", "print status", "nozzle temp", "bed temp".
license: MIT

Snapmaker Printer Control

Control Snapmaker U1 printers via the Moonraker API.

Configuration

Create a config file at ~/clawd/config/snapmaker.json:

{
  "ip": "192.168.x.x",
  "port": 80
}

Or use environment variables:

export SNAPMAKER_IP=192.168.x.x
export SNAPMAKER_PORT=80  # optional, defaults to 80

Config search order:

  1. SNAPMAKER_IP environment variable (highest priority)
  2. ~/clawd/config/snapmaker.json
  3. ~/.config/clawdbot/snapmaker.json

Quick Commands

Check Status

scripts/snapmaker.py status

Filament Info

scripts/snapmaker.py filament

Shows RFID tag data for each slot: material type, color (hex), temp ranges, and sensor status.

Monitor Print (Live)

scripts/snapmaker.py monitor
scripts/snapmaker.py pause
scripts/snapmaker.py resume  
scripts/snapmaker.py cancel

Temperature

scripts/snapmaker.py temps

API Reference

The U1 uses Moonraker REST API on port 80:

Endpoint Description
/server/info Server status
/printer/info Printer info
/printer/objects/query?heater_bed&extruder&print_stats Status
/printer/print/pause Pause print
/printer/print/resume Resume print
/printer/print/cancel Cancel print

Status Response Fields

  • print_stats.state: standby, printing, paused, complete, error
  • print_stats.filename: Current file
  • print_stats.print_duration: Seconds elapsed
  • virtual_sdcard.progress: 0.0 to 1.0
  • heater_bed.temperature / heater_bed.target: Bed temps
  • extruder.temperature / extruder.target: Nozzle temps

Filament & Sensor Data

Query filament RFID and sensors:

/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

filament_detect.info[]

Array of 4 slots with RFID tag data (or defaults if no tag):

Field Description
VENDOR "Snapmaker" or "NONE" if no RFID
MANUFACTURER e.g. "Polymaker"
MAIN_TYPE Material: "PLA", "PETG", "ABS", etc.
SUB_TYPE Variant: "SnapSpeed", "generic", etc.
RGB_1 Color as decimal int (convert: #${(rgb>>16&0xFF).toString(16)}...)
ARGB_COLOR Color with alpha (decimal)
WEIGHT Spool weight in grams
HOTEND_MIN_TEMP / HOTEND_MAX_TEMP Nozzle temp range
BED_TEMP Recommended bed temp
OFFICIAL true if official Snapmaker filament

filament_motion_sensor e{0-3}_filament

Field Description
filament_detected Boolean - filament present in slot
enabled Boolean - sensor active

Note: Slots can have filament_detected: true but VENDOR: NONE — this means third-party filament without RFID tag.