Skip to main content

snapmaker

Control and monitor Snapmaker 2.0 3D printers via their HTTP API. Status, job management, progress watching, and event monitoring.

Datos de origen

Repositorio
Kernel8901/ai-agent-skills-classification
Última actividad en el origen
4 de abril de 2026 a las 15:26
Idioma detectado de SKILL.md
inglés
Estrellas
6
Forks
1

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
4 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
snapmaker
description
Control and monitor Snapmaker 2.0 3D printers via their HTTP API. Status, job management, progress watching, and event monitoring.
summary
Snapmaker 2.0 3D printer control: status, jobs, monitoring.
version
1.0.0
homepage
https://github.com/odrobnik/snapmaker-skill
metadata
{"openclaw":{"emoji":"🖨️","requires":{"bins":"[Truncated]"}}}
# Snapmaker 2.0 Skill Control and monitor Snapmaker 2.0 3D printers via their HTTP API. ## Features - **Status monitoring** - Real-time printer status (temperatures, progress, position) - **Job management** - Send, start, pause, resume, and stop print jobs - **Safety features** - Prevents interfering with active prints without confirmation - **Progress watching** - Live monitoring of print progress - **Notification support** - Detect print completion, filament issues, errors ## Configuration Config stored in `~/clawd/snapmaker/config.json`: ```json { "ip": "192.168.0.32", "token": "your-token-here", "port": 8080 } ``` **Finding your token:** - macOS: `~/Library/Application Support/snapmaker-luban/machine.json` - Windows: `%appdata%\snapmaker-luban\machine.json` - Linux: `~/.config/snapmaker-luban/machine.json` Look for the `server.token` field (second "token" in the file). ## Usage ### Basic Commands ```bash # Get current printer status python3 scripts/snapmaker.py status # Watch print progress (updates every 5 seconds) python3 scripts/snapmaker.py watch # Get status as JSON python3 scripts/snapmaker.py status --json ``` ### Job Control ```bash # Send a file (prepares but doesn't start) python3 scripts/snapmaker.py send ~/prints/model.gcode # Send and start immediately python3 scripts/snapmaker.py send ~/prints/model.gcode --start --yes # Pause current print python3 scripts/snapmaker.py pause --yes # Resume paused print python3 scripts/snapmaker.py resume --yes # Stop/cancel print (requires confirmation) python3 scripts/snapmaker.py stop ``` ### Safety Flags - `--yes` - Skip confirmation prompts (use with caution!) - `--force` - Override safety checks (NOT RECOMMENDED) All commands that modify state require confirmation unless `--yes` is provided. ## API Endpoints The skill uses these Snapmaker HTTP API v1 endpoints: - `POST /api/v1/connect` - Establish connection - `GET /api/v1/status` - Get printer status - `POST /api/v1/prepare_print` - Upload file - `POST /api/v1/start_print` - Start printing - `POST /api/v1/pause` - Pause print - `POST /api/v1/resume` - Resume print - `POST /api/v1/stop` - Stop/cancel print - `GET /api/v1/print_file` - Download last file ## Status Fields The status command returns: - **status** - Overall state (IDLE, RUNNING, PAUSED) - **printStatus** - Printing / Idle - **progress** - 0.0 to 1.0 - **fileName** - Current/last file - **currentLine** / **totalLines** - G-code progress - **elapsedTime** / **remainingTime** - In seconds - **nozzleTemperature1** / **nozzleTargetTemperature1** - **heatedBedTemperature** / **heatedBedTargetTemperature** - **x** / **y** / **z** - Current position - **isFilamentOut** - Filament runout detection - **isEnclosureDoorOpen** - Door state ## Notifications To detect events: ```bash # Watch for completion python3 scripts/snapmaker.py watch # Or poll status in a loop while true; do python3 scripts/snapmaker.py status --json | jq -r '.printStatus' sleep 10 done ``` Event detection: - **Print complete** - status == "IDLE" && progress >= 0.99 - **Filament out** - isFilamentOut == true - **Door opened** - isEnclosureDoorOpen == true - **Error** - Check status field for errors ## Safety Features 1. **Active print protection** - Cannot send files while printing 2. **Confirmation prompts** - All destructive actions require confirmation 3. **State validation** - Commands check printer state before executing 4. **Clear warnings** - Stop command shows prominent warning ## Examples ### Check if printer is busy ```bash python3 scripts/snapmaker.py status | grep -q "RUNNING" && echo "Busy" || echo "Available" ``` ### Get remaining time ```bash python3 scripts/snapmaker.py status --json | jq -r '.remainingTime' ``` ### Monitor temperatures ```bash python3 scripts/snapmaker.py status --json | jq '{nozzle: .nozzleTemperature1, bed: .heatedBedTemperature}' ``` ## Troubleshooting **Connection refused:** - Verify printer IP: `ping 192.168.0.32` - Check printer is powered on - Ensure you're on the same network **Invalid token:** - Reconnect Luban to the printer (accept on touchscreen) - Extract new token from `machine.json` - Update `~/clawd/snapmaker/config.json` **Can't send file:** - Check if printer is busy: `python3 scripts/snapmaker.py status` - Wait for current print to finish - Use `--force` only if absolutely necessary ## References - [Snapmaker Forum: Auto-start Guide](https://forum.snapmaker.com/t/guide-automatic-start-via-drag-drop/29177) - [Snapmaker Forum: API Documentation](https://forum.snapmaker.com/t/documentation-of-the-web-api/20976/16) ## Dependencies - Python 3.6+ - `requests` library (install: `pip3 install requests`) ## License Part of OpenClaw skills collection.
Ver en GitHub