@amd989/scrypted-prusa-connect
v0.1.5
Published
Scrypted plugin for Prusa Connect integration
Maintainers
Readme
Scrypted Prusa Connect Plugin
This plugin integrates Scrypted camera devices with the Prusa Connect platform, allowing you to monitor your 3D printers with your existing camera setup.
Features
- Camera Mixin Integration - Extends existing cameras with Prusa Connect functionality
- Automatic Snapshot Uploads - Configurable interval-based uploads (default: 10 seconds)
- Manual Sync - "Sync Now" button for on-demand snapshots
- Multiple Camera Support - Configure each camera independently
- Auto-Population - Automatically populates camera details (name, model, resolution) on first setup
- Rate Limit Handling - Gracefully handles Prusa Connect API rate limits
- Persistent Configuration - Settings are saved per-camera
Installation
- Open Scrypted Management Console
- Navigate to Plugins
- Click "Install Plugin"
- Search for "Prusa Connect" or install from local development
Configuration
Plugin Settings
- Navigate to the Prusa Connect plugin
- Configure global settings:
- Prusa Connect URL: Default is
https://connect.prusa3d.com - Upload Interval: How often to upload snapshots in seconds (0 to disable automatic uploads)
- Prusa Connect URL: Default is
Per-Camera Setup
- Go to any camera device
- Enable the Prusa Connect mixin
- In the camera settings, you'll see a new "Prusa Connect" section with:
- Camera Token: Get this from Prusa Connect (see below)
- Camera Name: Display name in Prusa Connect
- Last Sync: Shows when the last upload occurred
- Sync Now: Button to manually trigger an upload
Getting a Camera Token
Important: You need to manually register your camera in Prusa Connect first.
- Log in to Prusa Connect
- Go to your printer settings
- Add a new camera manually
- Copy the generated Camera Token
- Paste it into the Scrypted camera's "Camera Token" field
How It Works
This plugin uses Scrypted's MixinProvider pattern to extend camera devices:
- Mixin Integration - Adds Prusa Connect functionality to existing cameras without replacing them
- Token-Based Authentication - Each camera uses its own token + persistent fingerprint for security
- Automatic Info Population - On first token setup, automatically sends camera details (name, model, resolution) to Prusa Connect
- Background Uploads - Runs automatic uploads at the configured interval for all cameras with valid tokens
- Error Handling - Rate limit errors are handled gracefully without stopping other cameras
Plugin Architecture
- PrusaConnectProvider - Main plugin that manages global settings and automatic upload timers
- PrusaConnectMixin - Per-camera mixin that handles individual camera configuration and uploads
- PrusaConnectClient - API client for communicating with Prusa Connect
- CameraManager - Handles camera operations and snapshot uploads
Rate Limiting
Prusa Connect enforces rate limits (~10 second minimum between uploads). The plugin handles this by:
- Logging friendly warnings instead of verbose errors
- Continuing automatic uploads for other cameras when one gets rate limited
- Using a default 10-second interval to align with API limits
Troubleshooting
Camera Not Uploading
- Check that the camera token is valid in Prusa Connect
- Verify the camera can take snapshots in Scrypted
- Look for rate limiting messages in logs
- Try the "Sync Now" button for manual testing
Settings Not Showing
- Ensure the Prusa Connect mixin is enabled on the camera
- Check that the camera supports the Camera interface
- Look for the "Prusa Connect" section in camera settings (not under "General")
Common Error Messages
"Upload rate limited by Prusa Connect"- Normal, uploads will resume automatically"Camera token not set"- Configure the camera token in camera settings"Invalid fingerprint"- Token/fingerprint mismatch, try re-entering the token
Development
Building
npm install
npm run buildLocal Deployment
npm run scrypted-deploy-debugProject Structure
src/
├── main.ts # Main plugin and mixin classes
├── prusa-connect-client.ts # API client
└── camera-manager.ts # Camera operations wrapperVersion History
- 0.1.5 - Initial release with camera mixin integration, automatic uploads, and camera info auto-population
