snapmaker

Verified·Scanned 2/18/2026

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

from clawhub.ai·v1.0.0·18.3 KB·0 installs
Scanned from 1.0.0 at cd88b56 · Transparency log ↗
$ vett add clawhub.ai/lucakaufmann/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.