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.

Informations de source

Dépôt
Kernel8901/ai-agent-skills-classification
Dernière activité de la source
4 avril 2026 à 15:26
Langue détectée de SKILL.md
anglais
Étoiles
5
Forks
1

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
4 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
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.
Voir sur GitHub