Snapmaker U1

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".

Audits

Pass

Install

openclaw skills install snapmaker

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

Print Control

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:

EndpointDescription
/server/infoServer status
/printer/infoPrinter info
/printer/objects/query?heater_bed&extruder&print_statsStatus
/printer/print/pausePause print
/printer/print/resumeResume print
/printer/print/cancelCancel 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):

FieldDescription
VENDOR"Snapmaker" or "NONE" if no RFID
MANUFACTURERe.g. "Polymaker"
MAIN_TYPEMaterial: "PLA", "PETG", "ABS", etc.
SUB_TYPEVariant: "SnapSpeed", "generic", etc.
RGB_1Color as decimal int (convert: #${(rgb>>16&0xFF).toString(16)}...)
ARGB_COLORColor with alpha (decimal)
WEIGHTSpool weight in grams
HOTEND_MIN_TEMP / HOTEND_MAX_TEMPNozzle temp range
BED_TEMPRecommended bed temp
OFFICIALtrue if official Snapmaker filament

filament_motion_sensor e{0-3}_filament

FieldDescription
filament_detectedBoolean - filament present in slot
enabledBoolean - sensor active

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