Browse Source

Moved documentation to it's own repository

maziggy 5 months ago
parent
commit
07f4d4482f

+ 9 - 9
README.md

@@ -19,7 +19,7 @@
   <a href="#-features">Features</a> •
   <a href="#-features">Features</a> •
   <a href="#-screenshots">Screenshots</a> •
   <a href="#-screenshots">Screenshots</a> •
   <a href="#-quick-start">Quick Start</a> •
   <a href="#-quick-start">Quick Start</a> •
-  <a href="https://github.com/maziggy/bambuddy/wiki">Documentation</a> •
+  <a href="https://github.com/maziggy/bambuddy-wiki">Documentation</a> •
   <a href="#-contributing">Contributing</a>
   <a href="#-contributing">Contributing</a>
 </p>
 </p>
 
 
@@ -150,7 +150,7 @@ uvicorn backend.app.main:app --host 0.0.0.0 --port 8000
 
 
 Open **http://localhost:8000** and add your printer!
 Open **http://localhost:8000** and add your printer!
 
 
-> **Need detailed instructions?** See the [Installation Guide](https://github.com/maziggy/bambuddy/wiki/Installation)
+> **Need detailed instructions?** See the [Installation Guide](https://github.com/maziggy/bambuddy-wiki/blob/main/Installation.md)
 
 
 ### Enabling LAN Mode
 ### Enabling LAN Mode
 
 
@@ -163,13 +163,13 @@ Open **http://localhost:8000** and add your printer!
 
 
 ## 📚 Documentation
 ## 📚 Documentation
 
 
-Full documentation available in the **[Wiki](https://github.com/maziggy/bambuddy/wiki)**:
+Full documentation available in the **[Wiki](https://github.com/maziggy/bambuddy-wiki)**:
 
 
-- [Installation](https://github.com/maziggy/bambuddy/wiki/Installation) — All installation methods
-- [Getting Started](https://github.com/maziggy/bambuddy/wiki/Getting-Started) — First printer setup
-- [Features](https://github.com/maziggy/bambuddy/wiki/Home#feature-documentation) — Detailed feature guides
-- [Troubleshooting](https://github.com/maziggy/bambuddy/wiki/Troubleshooting) — Common issues & solutions
-- [API Reference](https://github.com/maziggy/bambuddy/wiki/API-Reference) — REST API documentation
+- [Installation](https://github.com/maziggy/bambuddy-wiki/blob/main/Installation.md) — All installation methods
+- [Getting Started](https://github.com/maziggy/bambuddy-wiki/blob/main/Getting-Started.md) — First printer setup
+- [Features](https://github.com/maziggy/bambuddy-wiki#feature-documentation) — Detailed feature guides
+- [Troubleshooting](https://github.com/maziggy/bambuddy-wiki/blob/main/Troubleshooting.md) — Common issues & solutions
+- [API Reference](https://github.com/maziggy/bambuddy-wiki/blob/main/API-Reference.md) — REST API documentation
 
 
 ---
 ---
 
 
@@ -242,5 +242,5 @@ MIT License — see [LICENSE](LICENSE) for details.
   <br><br>
   <br><br>
   <a href="https://github.com/maziggy/bambuddy/issues">Report Bug</a> •
   <a href="https://github.com/maziggy/bambuddy/issues">Report Bug</a> •
   <a href="https://github.com/maziggy/bambuddy/issues">Request Feature</a> •
   <a href="https://github.com/maziggy/bambuddy/issues">Request Feature</a> •
-  <a href="https://github.com/maziggy/bambuddy/wiki">Documentation</a>
+  <a href="https://github.com/maziggy/bambuddy-wiki">Documentation</a>
 </p>
 </p>

+ 0 - 305
docs/wiki/API-Reference.md

@@ -1,305 +0,0 @@
-# API Reference
-
-Bambuddy provides a REST API for programmatic access to all features.
-
-## Interactive Documentation
-
-When Bambuddy is running, access interactive API docs:
-
-- **Swagger UI**: http://localhost:8000/docs
-- **ReDoc**: http://localhost:8000/redoc
-
-These provide:
-- Complete endpoint documentation
-- Request/response schemas
-- Try-it-out functionality
-- Authentication details
-
----
-
-## Base URL
-
-```
-http://localhost:8000/api/v1
-```
-
-Replace `localhost:8000` with your server address.
-
----
-
-## Authentication
-
-Currently, Bambuddy does not require authentication for API access. The API is intended for local network use.
-
-> **Note**: Future versions may add authentication. Keep your Bambuddy instance on a trusted network.
-
----
-
-## Endpoints Overview
-
-### Printers
-
-| Method | Endpoint | Description |
-|--------|----------|-------------|
-| GET | `/printers` | List all printers |
-| POST | `/printers` | Add a new printer |
-| GET | `/printers/{id}` | Get printer details |
-| PUT | `/printers/{id}` | Update printer |
-| DELETE | `/printers/{id}` | Delete printer |
-| POST | `/printers/{id}/connect` | Connect to printer |
-| POST | `/printers/{id}/disconnect` | Disconnect from printer |
-
-### Archives
-
-| Method | Endpoint | Description |
-|--------|----------|-------------|
-| GET | `/archives` | List all archives |
-| GET | `/archives/{id}` | Get archive details |
-| DELETE | `/archives/{id}` | Delete archive |
-| POST | `/archives/{id}/reprint` | Send to printer |
-| GET | `/archives/{id}/download` | Download 3MF file |
-| POST | `/archives/{id}/photos` | Upload photo |
-
-### Print Queue
-
-| Method | Endpoint | Description |
-|--------|----------|-------------|
-| GET | `/queue` | List all queue items |
-| POST | `/queue` | Add to queue |
-| GET | `/queue/{id}` | Get queue item |
-| DELETE | `/queue/{id}` | Remove from queue |
-| PUT | `/queue/{id}/reorder` | Change queue position |
-| POST | `/queue/{id}/cancel` | Cancel queued print |
-
-### Smart Plugs
-
-| Method | Endpoint | Description |
-|--------|----------|-------------|
-| GET | `/smart-plugs` | List all smart plugs |
-| POST | `/smart-plugs` | Add smart plug |
-| GET | `/smart-plugs/{id}` | Get plug details |
-| PUT | `/smart-plugs/{id}` | Update plug |
-| DELETE | `/smart-plugs/{id}` | Delete plug |
-| POST | `/smart-plugs/{id}/on` | Turn on |
-| POST | `/smart-plugs/{id}/off` | Turn off |
-| GET | `/smart-plugs/{id}/status` | Get current status |
-
-### Notifications
-
-| Method | Endpoint | Description |
-|--------|----------|-------------|
-| GET | `/notifications/providers` | List providers |
-| POST | `/notifications/providers` | Add provider |
-| PUT | `/notifications/providers/{id}` | Update provider |
-| DELETE | `/notifications/providers/{id}` | Delete provider |
-| POST | `/notifications/providers/{id}/test` | Send test |
-| GET | `/notifications/templates` | Get templates |
-| PUT | `/notifications/templates/{event}` | Update template |
-
-### Settings
-
-| Method | Endpoint | Description |
-|--------|----------|-------------|
-| GET | `/settings` | Get all settings |
-| PUT | `/settings` | Update settings |
-| GET | `/settings/filaments` | List filaments |
-| POST | `/settings/filaments` | Add filament |
-
-### Maintenance
-
-| Method | Endpoint | Description |
-|--------|----------|-------------|
-| GET | `/maintenance/types` | List maintenance types |
-| POST | `/maintenance/types` | Create type |
-| GET | `/maintenance/status` | Get maintenance status |
-| POST | `/maintenance/log` | Log maintenance |
-
-### Cloud Profiles
-
-| Method | Endpoint | Description |
-|--------|----------|-------------|
-| GET | `/cloud/profiles` | List profiles |
-| POST | `/cloud/sync` | Sync with cloud |
-| GET | `/cloud/profiles/{id}` | Get profile |
-| POST | `/cloud/templates` | Create template |
-
-### Updates
-
-| Method | Endpoint | Description |
-|--------|----------|-------------|
-| GET | `/updates/check` | Check for updates |
-| POST | `/updates/apply` | Apply update |
-| GET | `/updates/status` | Get update status |
-
----
-
-## WebSocket
-
-Real-time updates via WebSocket:
-
-```
-ws://localhost:8000/api/v1/ws
-```
-
-### Connection
-```javascript
-const ws = new WebSocket('ws://localhost:8000/api/v1/ws');
-
-ws.onmessage = (event) => {
-  const data = JSON.parse(event.data);
-  console.log('Event:', data.type, data.payload);
-};
-```
-
-### Event Types
-
-| Event | Description |
-|-------|-------------|
-| `printer_state` | Printer status update |
-| `print_progress` | Print progress update |
-| `print_complete` | Print finished |
-| `print_failed` | Print failed |
-| `queue_update` | Queue changed |
-| `notification` | System notification |
-
-### Message Format
-```json
-{
-  "type": "printer_state",
-  "printer_id": 1,
-  "payload": {
-    "status": "printing",
-    "progress": 45,
-    "nozzle_temp": 210,
-    "bed_temp": 60
-  }
-}
-```
-
----
-
-## Common Response Formats
-
-### Success Response
-```json
-{
-  "success": true,
-  "data": { ... }
-}
-```
-
-### Error Response
-```json
-{
-  "success": false,
-  "error": {
-    "code": "PRINTER_NOT_FOUND",
-    "message": "Printer with ID 123 not found"
-  }
-}
-```
-
-### List Response
-```json
-{
-  "success": true,
-  "data": [ ... ],
-  "pagination": {
-    "total": 100,
-    "page": 1,
-    "per_page": 20
-  }
-}
-```
-
----
-
-## Example Requests
-
-### List Printers
-```bash
-curl http://localhost:8000/api/v1/printers
-```
-
-### Add Printer
-```bash
-curl -X POST http://localhost:8000/api/v1/printers \
-  -H "Content-Type: application/json" \
-  -d '{
-    "name": "Workshop X1C",
-    "ip_address": "192.168.1.100",
-    "access_code": "12345678",
-    "serial_number": "00M00A000000000"
-  }'
-```
-
-### Get Archives
-```bash
-curl "http://localhost:8000/api/v1/archives?limit=10&offset=0"
-```
-
-### Schedule Print
-```bash
-curl -X POST http://localhost:8000/api/v1/queue \
-  -H "Content-Type: application/json" \
-  -d '{
-    "archive_id": 42,
-    "printer_id": 1,
-    "scheduled_time": "2024-01-15T14:00:00Z",
-    "auto_power_off": true
-  }'
-```
-
-### Control Smart Plug
-```bash
-# Turn on
-curl -X POST http://localhost:8000/api/v1/smart-plugs/1/on
-
-# Turn off
-curl -X POST http://localhost:8000/api/v1/smart-plugs/1/off
-```
-
-### Send Test Notification
-```bash
-curl -X POST http://localhost:8000/api/v1/notifications/providers/1/test
-```
-
----
-
-## Rate Limiting
-
-Currently no rate limiting is implemented. For high-frequency polling, consider using WebSocket instead.
-
----
-
-## Error Codes
-
-| Code | Description |
-|------|-------------|
-| `PRINTER_NOT_FOUND` | Printer ID doesn't exist |
-| `PRINTER_OFFLINE` | Printer not connected |
-| `ARCHIVE_NOT_FOUND` | Archive ID doesn't exist |
-| `QUEUE_ITEM_NOT_FOUND` | Queue item doesn't exist |
-| `PLUG_NOT_FOUND` | Smart plug doesn't exist |
-| `PLUG_OFFLINE` | Smart plug not responding |
-| `INVALID_REQUEST` | Request validation failed |
-| `FTP_ERROR` | File transfer failed |
-| `MQTT_ERROR` | Printer communication failed |
-
----
-
-## SDK / Client Libraries
-
-No official client libraries yet. The API is standard REST and can be consumed with:
-- `fetch` / `axios` (JavaScript)
-- `requests` / `httpx` (Python)
-- `curl` (command line)
-- Any HTTP client
-
----
-
-## Webhooks (Outgoing)
-
-Configure outgoing webhooks in notification settings. Bambuddy sends POST requests to your URL with JSON payloads for print events.
-
-See [Push Notifications](Features-Notifications#webhook-generic) for details.

+ 0 - 245
docs/wiki/Features-Cloud-Profiles.md

@@ -1,245 +0,0 @@
-# Cloud Profiles
-
-Access and manage your Bambu Cloud slicer presets with powerful template and comparison features.
-
-## Overview
-
-Cloud Profiles syncs with your Bambu Cloud account to provide:
-- View and manage filament, printer, and process presets
-- Template system for quick preset creation
-- Side-by-side preset comparison with diff view
-- Local storage of synced presets
-
----
-
-## Connecting to Bambu Cloud
-
-### Step 1: Get Your Credentials
-You'll need your Bambu Cloud account credentials or access token.
-
-### Step 2: Configure in Bambuddy
-1. Go to **Settings** > **Cloud Profiles**
-2. Enter your credentials
-3. Click **Connect**
-4. Presets will sync automatically
-
-### Step 3: Verify Connection
-- Status shows "Connected"
-- Presets appear in the Cloud Profiles page
-
----
-
-## Preset Types
-
-### Filament Presets
-Settings for specific filament types:
-- Temperature profiles
-- Cooling settings
-- Retraction settings
-- Flow calibration
-
-### Printer Presets
-Machine-specific settings:
-- Build volume
-- Speed limits
-- Acceleration values
-- Hardware capabilities
-
-### Process Presets
-Print quality and speed settings:
-- Layer height
-- Print speed
-- Infill patterns
-- Support settings
-
----
-
-## Browsing Presets
-
-### Filtering
-- **By Type**: Filament, Printer, Process
-- **By Source**: Official, User-created, Templates
-- **Search**: Find by name
-
-### Preset Cards
-Each preset shows:
-- Name and type
-- Source (official/user)
-- Base preset (if derived)
-- Last modified date
-
-### Preset Details
-Click a preset to view:
-- All settings and values
-- Base preset reference
-- Modification history
-
----
-
-## Template System
-
-Create reusable templates from any preset for quick preset creation.
-
-### Creating a Template
-
-1. Find a preset you want to use as a base
-2. Click the template icon (or right-click > "Save as Template")
-3. Give the template a name
-4. Template is saved for future use
-
-### Template Visibility
-
-Control which templates appear in creation modals:
-1. Go to template management
-2. Toggle visibility for each template
-3. Only visible templates show in dropdowns
-
-### Using Templates
-
-When creating a new preset:
-1. Click "New Preset"
-2. Select a template from the dropdown
-3. Template settings are pre-filled
-4. Modify as needed
-5. Save the new preset
-
----
-
-## Preset Comparison
-
-Compare presets side-by-side to understand differences.
-
-### Compare with Base
-
-See what's changed from the original preset:
-1. Open a preset that's derived from another
-2. Click "Compare with Base"
-3. View differences highlighted
-
-### Compare Any Two Presets
-
-Compare any presets of the same type:
-1. Select first preset
-2. Click "Compare"
-3. Select second preset
-4. View side-by-side diff
-
-### Diff View Features
-
-| Feature | Description |
-|---------|-------------|
-| **Added** | Settings only in new preset (green) |
-| **Removed** | Settings only in base preset (red) |
-| **Changed** | Different values (yellow) |
-| **Search** | Filter diff by setting name |
-| **Statistics** | Count of changes by type |
-
----
-
-## Managing Presets
-
-### Editing Presets
-1. Open the preset
-2. Click "Edit"
-3. Modify settings
-4. Save changes
-
-> Note: Official presets cannot be edited. Create a copy first.
-
-### Creating Presets
-1. Click "New Preset"
-2. Select preset type
-3. Choose a base preset or template
-4. Configure settings
-5. Save with a unique name
-
-### Deleting Presets
-1. Right-click the preset
-2. Select "Delete"
-3. Confirm deletion
-
-> Official presets cannot be deleted.
-
----
-
-## Syncing
-
-### Automatic Sync
-Presets sync periodically with Bambu Cloud:
-- New presets downloaded
-- Changes uploaded
-- Deleted presets removed
-
-### Manual Sync
-Force a sync:
-1. Go to Cloud Profiles page
-2. Click "Sync Now"
-3. Wait for sync to complete
-
-### Sync Status
-- **Synced**: Up to date with cloud
-- **Pending**: Local changes not yet uploaded
-- **Conflict**: Different changes locally and in cloud
-
----
-
-## Local Storage
-
-Synced presets are stored locally:
-- Available offline after initial sync
-- Faster loading times
-- Backup of your presets
-
-### Storage Location
-Presets stored in SQLite database alongside other Bambuddy data.
-
----
-
-## Use Cases
-
-### Standardizing Settings
-1. Create a "Standard PLA" preset with your preferred settings
-2. Save as template
-3. Use template for all PLA prints
-4. Consistent quality across prints
-
-### Experimenting Safely
-1. Copy an existing preset
-2. Make experimental changes
-3. Compare with original
-4. Keep or discard based on results
-
-### Team Sharing
-1. Create optimized presets
-2. Export or share via Bambu Cloud
-3. Team members sync the same presets
-4. Consistent settings across all printers
-
----
-
-## Troubleshooting
-
-### Connection Failed
-- Verify credentials are correct
-- Check internet connection
-- Try logging out and back in to Bambu Cloud
-
-### Presets Not Appearing
-- Force a manual sync
-- Check filter settings
-- Verify presets exist in Bambu Cloud
-
-### Sync Conflicts
-- Local changes may conflict with cloud
-- Review differences in comparison view
-- Choose which version to keep
-
----
-
-## Tips
-
-- Use templates for consistent starting points
-- Compare before and after making changes
-- Keep official presets as reference
-- Create project-specific presets
-- Regular syncs ensure latest settings

+ 0 - 186
docs/wiki/Features-External-Links.md

@@ -1,186 +0,0 @@
-# External Sidebar Links
-
-Add custom links to external tools directly in the sidebar navigation.
-
-## Overview
-
-External links let you:
-- Add quick access to other tools
-- Customize the sidebar with your frequently used services
-- Embed external pages within Bambuddy
-
----
-
-## Use Cases
-
-Quick access to:
-- **OctoPrint** or **Mainsail** (other print managers)
-- **Spoolman** (filament inventory)
-- **Obico** (AI print monitoring)
-- **Home Assistant** (home automation)
-- Documentation or reference sites
-- Internal dashboards
-
----
-
-## Adding External Links
-
-1. Go to **Settings**
-2. Scroll to **Sidebar Links**
-3. Click **Add Link**
-4. Configure:
-   - **Name**: Display name for the link
-   - **URL**: Full URL to the external site
-   - **Icon**: Choose icon type
-5. Click **Save**
-
----
-
-## Link Configuration
-
-### Name
-- Display text shown in sidebar
-- Keep it short (1-2 words)
-- Examples: "Spoolman", "OctoPrint", "Docs"
-
-### URL
-- Full URL including protocol
-- Examples:
-  - `http://192.168.1.100:7912` (Spoolman)
-  - `https://docs.example.com`
-  - `http://octopi.local`
-
-### Icon Options
-
-**Built-in Icons**
-Choose from common icons:
-- Link icon
-- External link icon
-- Home icon
-- Settings icon
-- And more...
-
-**Custom Icons**
-Upload your own:
-1. Select "Custom Icon"
-2. Upload an SVG file
-3. Icon is stored and displayed
-
----
-
-## Managing Links
-
-### Reordering
-Drag links to change their position:
-1. Hover over the link
-2. Click and hold the grip handle
-3. Drag to new position
-4. Release to drop
-
-Links can be mixed with internal navigation items.
-
-### Editing
-1. Click the pencil icon on a link
-2. Modify settings
-3. Click **Save**
-
-### Deleting
-1. Click the trash icon on a link
-2. Confirm deletion
-
----
-
-## How Links Open
-
-### Embedded Mode (Default)
-External pages open in an iframe within Bambuddy:
-- Stays within Bambuddy interface
-- Quick switching between tools
-- Sidebar remains accessible
-
-### New Tab
-Some sites require opening in a new tab:
-- Sites that block iframe embedding
-- Complex applications
-- When you need full browser features
-
----
-
-## Iframe Limitations
-
-Some websites block iframe embedding for security:
-
-### Common Restrictions
-- `X-Frame-Options` header set to DENY
-- Content Security Policy restrictions
-- Same-origin policy violations
-
-### Affected Sites
-Sites that typically don't work in iframes:
-- Google services
-- Social media sites
-- Banking/financial sites
-- Some cloud dashboards
-
-### Workaround
-If a site doesn't load in the iframe:
-1. Right-click the link
-2. Select "Open in New Tab"
-3. Or configure the link to always open externally
-
----
-
-## Icon Upload
-
-### Supported Formats
-- SVG (recommended)
-- PNG
-- JPG
-
-### Icon Guidelines
-- Square aspect ratio works best
-- Keep file size small (<50KB)
-- Simple designs show better at sidebar size
-- SVG scales best at any size
-
-### Finding Icons
-Sources for icons:
-- [Lucide Icons](https://lucide.dev/)
-- [Simple Icons](https://simpleicons.org/)
-- [Heroicons](https://heroicons.com/)
-- Product brand guidelines (for official logos)
-
----
-
-## Examples
-
-### Spoolman
-```
-Name: Spoolman
-URL: http://192.168.1.100:7912
-Icon: Built-in database icon
-```
-
-### Home Assistant
-```
-Name: Home
-URL: http://homeassistant.local:8123
-Icon: Custom (Home Assistant logo SVG)
-```
-
-### Documentation
-```
-Name: Docs
-URL: https://wiki.example.com
-Icon: Built-in book icon
-```
-
----
-
-## Tips
-
-- Keep link names short for cleaner sidebar
-- Use custom icons for brand recognition
-- Test iframe embedding before relying on it
-- Group related links by ordering them together
-- Remove unused links to keep sidebar clean

+ 0 - 171
docs/wiki/Features-File-Manager.md

@@ -1,171 +0,0 @@
-# File Manager
-
-Browse and manage files on your printer's internal storage.
-
-## Overview
-
-The File Manager allows you to:
-- Browse files on printer's SD card
-- View file details and thumbnails
-- Delete unwanted files
-- Free up storage space
-
----
-
-## Accessing File Manager
-
-1. Go to **Printers** page
-2. Click on a connected printer
-3. Select **File Manager** or click the folder icon
-
----
-
-## File Browser
-
-### Navigation
-- **Folder tree**: Navigate directory structure
-- **Breadcrumbs**: Quick path navigation
-- **Back button**: Return to parent folder
-
-### File List
-Each file shows:
-- **Thumbnail**: Preview image (for 3MF files)
-- **Name**: Filename
-- **Size**: File size
-- **Date**: Last modified date
-- **Type**: File type icon
-
-### Sorting
-Sort files by:
-- Name (A-Z, Z-A)
-- Date (newest, oldest)
-- Size (largest, smallest)
-
----
-
-## File Types
-
-### 3MF Files
-Print files with:
-- Model geometry
-- Slicer settings
-- Thumbnails
-- Metadata
-
-### Timelapse Videos
-Recorded print timelapses:
-- MP4 format
-- Stored in timelapse folder
-- Can be downloaded or deleted
-
-### Other Files
-- Gcode files (legacy)
-- Log files
-- Cache files
-
----
-
-## Managing Files
-
-### Viewing Details
-Click a file to see:
-- Full filename
-- File size
-- Created/modified date
-- Preview (if available)
-
-### Deleting Files
-1. Select file(s) to delete
-2. Click **Delete**
-3. Confirm deletion
-
-> Deleted files cannot be recovered!
-
-### Downloading Files
-1. Click on a file
-2. Select **Download**
-3. File downloads to your computer
-
----
-
-## Storage Information
-
-### Space Usage
-View storage status:
-- Total capacity
-- Used space
-- Available space
-- Usage percentage
-
-### Low Storage Warning
-Bambuddy warns when storage is low:
-- Yellow warning at 80% full
-- Red warning at 95% full
-
----
-
-## Common Operations
-
-### Freeing Up Space
-To free storage:
-1. Delete old timelapse videos
-2. Remove failed print files
-3. Clear cache files
-4. Delete prints you won't reprint
-
-### Finding Large Files
-1. Sort by size (largest first)
-2. Identify large files to remove
-3. Timelapses are usually the largest
-
-### Cleaning Up Timelapses
-Timelapses consume significant storage:
-1. Navigate to timelapse folder
-2. Sort by date
-3. Delete old timelapses you don't need
-
----
-
-## FTP Connection
-
-File Manager uses FTPS to connect:
-- Port 990 (implicit FTPS)
-- Encrypted connection
-- Same credentials as printer connection
-
-### Connection Issues
-If File Manager won't connect:
-- Verify printer is online
-- Check FTP port (990) is accessible
-- Ensure LAN Mode is enabled
-- Try reconnecting the printer
-
----
-
-## Limitations
-
-### Read-Only Folders
-Some folders are system-protected:
-- Cannot delete system files
-- Cannot modify firmware files
-
-### File Upload
-Currently not supported:
-- Use Bambu Studio for uploads
-- Or use the print queue feature
-
-### Simultaneous Access
-Only one FTP connection at a time:
-- Close other FTP clients
-- Bambu Studio may hold connection
-- Wait and retry if busy
-
----
-
-## Tips
-
-- Regularly clean up timelapses to save space
-- Download important files for backup
-- Delete failed print files promptly
-- Check storage before starting large prints
-- Keep 20%+ storage free for new prints

+ 0 - 205
docs/wiki/Features-K-Profiles.md

@@ -1,205 +0,0 @@
-# K-Profiles (Pressure Advance)
-
-Manage pressure advance settings directly on your printers for improved print quality.
-
-## What Are K-Profiles?
-
-K-profiles store pressure advance (also called Linear Advance) settings:
-- Compensate for filament compression in the extruder
-- Reduce corner bulging and improve sharp edges
-- Different values needed for different filaments and speeds
-
-### K-Value Basics
-| Material | Typical K-Value Range |
-|----------|----------------------|
-| PLA | 0.01 - 0.06 |
-| PETG | 0.02 - 0.10 |
-| ABS | 0.02 - 0.08 |
-| TPU | 0.10 - 0.30 |
-
-> Lower values = less compensation. Higher values = more compensation.
-
----
-
-## Accessing K-Profiles
-
-1. Go to **Settings** > **K-Profiles**
-2. Select a connected printer from the dropdown
-3. Choose a nozzle size (0.2, 0.4, 0.6, 0.8mm)
-4. Profiles are loaded from the printer
-
----
-
-## Viewing Profiles
-
-### Profile Cards
-Each profile displays:
-- **K-Value**: The pressure advance factor
-- **Profile Name**: Usually the filament name
-- **Filament ID**: Material identifier
-- **Flow Type**: HF (High Flow) or S (Standard)
-
-### Filtering Options
-- **Search**: Filter by profile name or filament ID
-- **Nozzle Size**: 0.2, 0.4, 0.6, 0.8mm
-- **Flow Type**: All, HF Only, or S Only
-- **Extruder**: All, Left Only, or Right Only (dual-nozzle)
-
----
-
-## Dual-Nozzle Printers (H2 Series)
-
-For H2D, H2C, and H2S printers with dual nozzles:
-
-### Automatic Detection
-Bambuddy detects nozzle count from MQTT temperature data:
-- Single nozzle: Standard interface
-- Dual nozzle: Left/Right column layout
-
-### Column Layout
-Profiles are organized by extruder:
-- **Left Column**: Left extruder profiles
-- **Right Column**: Right extruder profiles
-
-### Extruder Filter
-Show profiles for one extruder only:
-- All (default)
-- Left Only
-- Right Only
-
----
-
-## Editing K-Profiles
-
-1. Click on any profile card
-2. Edit modal opens with current values
-3. Modify the K-value
-4. Click **Save**
-5. Profile is updated on the printer
-
-### K-Value Guidelines
-- Start with recommended values for your material
-- Increase if you see corner bulging
-- Decrease if you see gaps at corners
-- Small changes (0.01-0.02) make noticeable differences
-
----
-
-## Adding K-Profiles
-
-1. Click **Add Profile** in the header
-2. Select a filament from the dropdown
-3. Choose flow type (High Flow or Standard)
-4. Choose nozzle size
-5. For dual-nozzle: Select Left or Right extruder
-6. Enter the K-value
-7. Click **Save**
-
-### Filament Selection
-The filament dropdown shows:
-- Filaments already calibrated on the printer
-- Materials from existing K-profiles
-
-> **Note**: New filaments must first be calibrated in Bambu Studio before they appear in this dropdown.
-
----
-
-## Deleting K-Profiles
-
-1. Click on the profile card
-2. Click the trash icon
-3. Confirm deletion
-4. Profile is removed from the printer
-
----
-
-## Calibrating K-Values
-
-Bambu Lab printers can auto-calibrate K-values:
-
-### In Bambu Studio
-1. Go to Calibration menu
-2. Select "Pressure Advance"
-3. Choose filament and settings
-4. Run calibration print
-5. Results saved to printer automatically
-
-### In Bambuddy
-After calibration in Bambu Studio:
-1. Profiles appear in K-Profiles page
-2. View and fine-tune values
-3. Add profiles for specific use cases
-
----
-
-## Understanding Flow Types
-
-### High Flow (HF)
-- For high-speed printing
-- Faster extrusion rates
-- Usually needs lower K-value
-
-### Standard (S)
-- Normal printing speeds
-- Standard extrusion rates
-- Baseline K-value
-
-> Create separate profiles for HF and Standard if you print at varying speeds.
-
----
-
-## Best Practices
-
-### Per-Material Profiles
-Create profiles for each material you use:
-- PLA (various brands may differ)
-- PETG
-- ABS
-- Specialty materials
-
-### Per-Nozzle Profiles
-Different nozzle sizes need different values:
-- 0.2mm: Usually lower K-values
-- 0.4mm: Standard K-values
-- 0.6mm+: May need adjustment
-
-### Testing Changes
-After modifying K-values:
-1. Print a test object (sharp corners work well)
-2. Examine corner quality
-3. Adjust K-value if needed
-4. Repeat until satisfied
-
----
-
-## Troubleshooting
-
-### No Profiles Showing
-- Ensure printer is connected
-- Select the correct nozzle size
-- Check if any profiles exist (calibrate first)
-
-### Can't Add New Filaments
-- Filaments must be calibrated in Bambu Studio first
-- Bambuddy reads filament list from existing profiles
-- Run a calibration print to add new filaments
-
-### Dual-Nozzle Not Detected
-- Ensure printer is connected and communicating
-- Nozzle count detected from temperature data
-- Try disconnecting and reconnecting
-
-### Changes Not Saving
-- Verify printer connection is active
-- Check for error messages
-- Try refreshing the page
-
----
-
-## Tips
-
-- Calibrate new filaments in Bambu Studio first
-- Fine-tune values in Bambuddy for quick adjustments
-- Document your optimal K-values for reference
-- Different brands of same material may need different values
-- Test with a simple calibration print after changes

+ 0 - 205
docs/wiki/Features-Maintenance.md

@@ -1,205 +0,0 @@
-# Maintenance Tracker
-
-Schedule and track printer maintenance to keep your printers in optimal condition.
-
-## Overview
-
-The maintenance tracker helps you:
-- Define maintenance tasks with intervals
-- Track when maintenance was last performed
-- Get reminders when maintenance is due
-- Log maintenance history
-
----
-
-## Maintenance Types
-
-### Default Maintenance Tasks
-
-Bambuddy includes common maintenance types:
-
-| Task | Description | Suggested Interval |
-|------|-------------|-------------------|
-| Nozzle Change | Replace worn nozzle | 500 print hours |
-| Lubrication | Lubricate linear rails and lead screws | 200 print hours |
-| Belt Tension | Check and adjust belt tension | 100 print hours |
-| Clean Build Plate | Deep clean the print surface | 50 print hours |
-| Clean Nozzle | Remove debris from nozzle | 20 print hours |
-| Firmware Update | Check for firmware updates | 30 days |
-
-### Custom Maintenance Types
-
-Create your own maintenance tasks:
-1. Go to **Settings** > **Maintenance**
-2. Click **Add Maintenance Type**
-3. Configure:
-   - **Name**: Task description
-   - **Interval Type**: Print hours or calendar days
-   - **Interval Value**: How often (e.g., every 100 hours)
-   - **Description**: Detailed instructions (optional)
-4. Click **Save**
-
----
-
-## Interval Types
-
-### Print Hours
-Maintenance triggered based on actual printing time:
-- Tracks cumulative print hours per printer
-- More accurate for wear-based maintenance
-- Example: "Every 500 print hours"
-
-### Calendar Days
-Maintenance triggered based on time passed:
-- Simple date-based tracking
-- Good for time-sensitive tasks
-- Example: "Every 30 days"
-
----
-
-## Tracking Maintenance
-
-### Maintenance Page
-
-View all maintenance for all printers:
-- Status indicators (OK, Due, Overdue)
-- Next due date/hours
-- Last completed date
-
-### Per-Printer View
-
-See maintenance for a specific printer:
-1. Go to Printers page
-2. Click maintenance icon on printer card
-3. View that printer's maintenance status
-
-### Status Indicators
-
-| Status | Color | Meaning |
-|--------|-------|---------|
-| OK | Green | Not due yet |
-| Due Soon | Yellow | Due within 10% of interval |
-| Due | Orange | Maintenance interval reached |
-| Overdue | Red | Past due date/hours |
-
----
-
-## Logging Maintenance
-
-When you perform maintenance:
-
-1. Find the maintenance task
-2. Click **Log Maintenance**
-3. Optionally add notes
-4. Click **Save**
-
-The tracker updates:
-- Last performed date
-- Next due date/hours calculated
-- Entry added to history
-
----
-
-## Maintenance History
-
-View past maintenance for any task:
-1. Click on a maintenance task
-2. View history log showing:
-   - Date performed
-   - Print hours at time of maintenance
-   - Notes (if any)
-   - Who performed it (if tracked)
-
----
-
-## Notifications
-
-Get notified when maintenance is due:
-
-### Enabling Notifications
-1. Go to **Settings** > **Notifications**
-2. Enable **Maintenance Due** event
-3. Configure provider(s)
-
-### Notification Timing
-- Sent when maintenance becomes due
-- Reminder sent if still due after 24 hours
-- No spam—one notification per due task
-
----
-
-## Managing Maintenance Types
-
-### Editing Types
-1. Go to **Settings** > **Maintenance**
-2. Click on a maintenance type
-3. Modify settings
-4. Click **Save**
-
-### Deleting Types
-1. Go to **Settings** > **Maintenance**
-2. Click delete icon on a type
-3. Confirm deletion
-
-> Deleting a type removes it from all printers.
-
-### Per-Printer Customization
-Different printers may need different intervals:
-1. Go to printer's maintenance view
-2. Override interval for that printer
-3. Original type remains unchanged
-
----
-
-## Print Hour Tracking
-
-Bambuddy automatically tracks print hours:
-- Accumulated during active prints
-- Stored per printer
-- Used for hour-based maintenance intervals
-
-### Viewing Print Hours
-- Displayed on printer cards
-- Available in statistics
-- Shown in maintenance calculations
-
-### Resetting Print Hours
-After major service (like a rebuild):
-1. Go to printer settings
-2. Find "Print Hours" section
-3. Click "Reset" or enter new value
-4. Maintenance intervals recalculate
-
----
-
-## Best Practices
-
-### Regular Schedule
-- Check maintenance page weekly
-- Address "Due" items promptly
-- Don't ignore "Overdue" warnings
-
-### Document Everything
-- Add notes when logging maintenance
-- Record any issues found
-- Track parts replaced
-
-### Customize for Your Printers
-- Adjust intervals based on usage
-- Add tasks specific to your workflow
-- Remove irrelevant default tasks
-
-### Preventive vs Reactive
-- Preventive maintenance prevents failures
-- Cheaper than repairs
-- Less downtime
-
----
-
-## Tips
-
-- Set conservative intervals initially, adjust based on experience
-- Use calendar-based intervals for firmware/software updates
-- Use print-hour intervals for wear-related maintenance
-- Enable notifications to never miss maintenance
-- Log maintenance immediately after performing it

+ 0 - 151
docs/wiki/Features-Monitoring.md

@@ -1,151 +0,0 @@
-# Real-time Monitoring
-
-Bambuddy provides live monitoring of all your connected Bambu Lab printers through WebSocket-based real-time updates.
-
-## Printer Status
-
-Each printer card displays real-time information:
-
-### Connection Status
-- **Green indicator**: Connected and communicating
-- **Red indicator**: Disconnected or connection error
-- **Yellow indicator**: Connecting or reconnecting
-
-### Temperature Readouts
-| Sensor | Description |
-|--------|-------------|
-| Nozzle | Current hotend temperature |
-| Bed | Heated bed temperature |
-| Chamber | Enclosure temperature (if available) |
-
-### Print Progress
-When a print is active:
-- **Progress bar**: Visual completion percentage
-- **Current layer**: Layer X of Y
-- **Time remaining**: Estimated time to completion
-- **Filament used**: Grams consumed
-
----
-
-## HMS Error Monitoring
-
-The Health Management System (HMS) monitors printer health:
-
-### Status Indicator
-Always visible on printer cards:
-- **Green "OK"**: No issues detected
-- **Yellow**: Minor issues or warnings
-- **Orange**: Serious errors requiring attention
-- **Red**: Fatal errors - stop printing
-
-### Error Severity Levels
-| Level | Color | Action Required |
-|-------|-------|-----------------|
-| Info | Blue | Informational only |
-| Common | Yellow | Check when convenient |
-| Serious | Orange | Address before next print |
-| Fatal | Red | Immediate attention needed |
-
-### Error Details
-Click the HMS indicator to see:
-- Error code and description
-- Affected component
-- Recommended action
-- Link to Bambu Lab support article
-
----
-
-## MQTT Debug Logging
-
-Built-in debugging tool for printer communication:
-
-### Starting Debug Logging
-1. Go to printer settings
-2. Click "Start MQTT Debug"
-3. Messages are captured in real-time
-
-### Viewing Messages
-- **Incoming**: Messages from printer to Bambuddy
-- **Outgoing**: Commands sent to printer
-- **JSON payloads**: Expandable for detailed inspection
-- **Auto-refresh**: New messages appear automatically
-
-### Use Cases
-- Troubleshooting connection issues
-- Understanding printer behavior
-- Debugging automation problems
-- Reporting issues to developers
-
----
-
-## AMS (Automatic Material System)
-
-For printers with AMS units:
-
-### Slot Status
-- **Filament color**: Visual swatch for each slot
-- **Material type**: PLA, PETG, ABS, etc.
-- **Remaining**: Estimated filament left
-- **Temperature**: Drying chamber temp (if applicable)
-
-### Humidity Monitoring
-- Current humidity level in AMS
-- Warning indicators for high humidity
-
----
-
-## Camera Feed
-
-Access your printer's camera:
-
-1. Click the camera icon on a printer card
-2. View live camera feed
-3. Take snapshots
-4. Monitor print progress visually
-
-### Camera Page
-Dedicated camera view with:
-- Larger video display
-- Multiple printer support
-- Snapshot history
-
----
-
-## WebSocket Architecture
-
-Bambuddy uses WebSocket for real-time updates:
-
-```
-Printer → MQTT → Bambuddy Backend → WebSocket → Browser
-```
-
-### Connection Handling
-- Automatic reconnection on disconnect
-- State synchronization on reconnect
-- Efficient delta updates (only changed data)
-
-### Performance
-- Low latency updates (<1 second typical)
-- Minimal bandwidth usage
-- Multiple browser tabs supported
-
----
-
-## Notifications on Status Changes
-
-Configure alerts for printer events:
-- **Printer Offline**: When connection is lost
-- **Printer Error**: When HMS errors occur
-- **Print Complete**: When a job finishes
-- **Print Failed**: When a print fails
-
-See [Push Notifications](Features-Notifications) for setup details.
-
----
-
-## Tips
-
-- Keep the Printers page open for at-a-glance monitoring
-- Use the camera page for visual confirmation of print quality
-- Enable HMS error notifications to catch problems early
-- Check MQTT debug logs if a printer behaves unexpectedly

+ 0 - 277
docs/wiki/Features-Notifications.md

@@ -1,277 +0,0 @@
-# Push Notifications
-
-Get notified about print events via multiple channels including WhatsApp, Telegram, Discord, Email, and more.
-
-## Supported Providers
-
-| Provider | Description | Setup Complexity |
-|----------|-------------|------------------|
-| **WhatsApp** | Via CallMeBot service | Easy |
-| **ntfy** | Self-hosted or ntfy.sh | Very Easy |
-| **Pushover** | Dedicated push service | Easy |
-| **Telegram** | Via Telegram Bot | Medium |
-| **Email** | SMTP email | Medium |
-| **Discord** | Channel webhooks | Easy |
-| **Webhook** | Generic HTTP POST | Flexible |
-
----
-
-## Adding a Notification Provider
-
-1. Go to **Settings** > **Notifications**
-2. Click **Add Provider**
-3. Select provider type
-4. Enter required configuration
-5. Click **Send Test** to verify
-6. Configure event triggers
-7. Click **Add**
-
----
-
-## Provider Setup Guides
-
-### WhatsApp (CallMeBot)
-
-Free WhatsApp notifications via CallMeBot:
-
-1. Add CallMeBot to contacts: **+34 644 51 95 23**
-2. Send via WhatsApp: `I allow callmebot to send me messages`
-3. You'll receive an API key
-4. In Bambuddy, enter:
-   - **Phone Number**: Your number with country code (e.g., +1234567890)
-   - **API Key**: The key from CallMeBot
-
-### ntfy
-
-Simple topic-based notifications:
-
-1. Choose a unique topic name (e.g., `my-printer-xyz123`)
-2. Subscribe on your phone:
-   - Install ntfy app ([Android](https://play.google.com/store/apps/details?id=io.heckel.ntfy) / [iOS](https://apps.apple.com/app/ntfy/id1625396347))
-   - Subscribe to your topic
-3. In Bambuddy, enter:
-   - **Topic**: Your chosen topic name
-   - **Server**: `https://ntfy.sh` (default) or your self-hosted server
-
-> No account needed for ntfy.sh public server!
-
-### Pushover
-
-Professional push notification service:
-
-1. Create account at [pushover.net](https://pushover.net/)
-2. Install Pushover app on your device
-3. Create an Application in Pushover dashboard
-4. In Bambuddy, enter:
-   - **User Key**: From your Pushover account
-   - **API Token**: From your Application
-
-### Telegram
-
-Via Telegram Bot:
-
-1. Message [@BotFather](https://t.me/BotFather) on Telegram
-2. Send `/newbot` and follow prompts
-3. Save the **Bot Token** provided
-4. Message [@userinfobot](https://t.me/userinfobot) to get your **Chat ID**
-5. In Bambuddy, enter:
-   - **Bot Token**: From BotFather
-   - **Chat ID**: Your user or group chat ID
-
-> For group notifications, add the bot to the group and use the group's chat ID.
-
-### Email (SMTP)
-
-Send notifications via email:
-
-1. Gather your SMTP server details
-2. In Bambuddy, enter:
-   - **SMTP Server**: e.g., `smtp.gmail.com`
-   - **Port**: 587 (STARTTLS), 465 (SSL), or 25 (None)
-   - **Security**: STARTTLS, SSL, or None
-   - **Username**: Your email address
-   - **Password**: Your password or app password
-   - **From Address**: Sender email
-   - **To Address**: Recipient email
-
-#### Gmail Setup
-1. Enable 2-Factor Authentication on your Google account
-2. Generate an [App Password](https://myaccount.google.com/apppasswords)
-3. Use the app password (not your regular password)
-4. Server: `smtp.gmail.com`, Port: 587, Security: STARTTLS
-
-### Discord
-
-Via channel webhooks:
-
-1. In Discord, go to channel settings
-2. Navigate to **Integrations** > **Webhooks**
-3. Click **New Webhook**
-4. Customize name/avatar if desired
-5. Click **Copy Webhook URL**
-6. In Bambuddy, paste the **Webhook URL**
-
-### Webhook (Generic)
-
-For custom integrations (Home Assistant, IFTTT, etc.):
-
-1. Enter your webhook URL
-2. Optionally add custom headers (e.g., Authorization)
-3. Bambuddy sends JSON payloads:
-
-```json
-{
-  "event": "print_complete",
-  "printer": "Workshop X1C",
-  "filename": "benchy.3mf",
-  "duration": "2h 15m",
-  "timestamp": "2024-01-15T14:30:00Z"
-}
-```
-
----
-
-## Event Triggers
-
-Configure which events send notifications:
-
-| Event | Description |
-|-------|-------------|
-| **Print Started** | When a print job begins |
-| **Print Completed** | When a print finishes successfully |
-| **Print Failed** | When a print fails or errors out |
-| **Print Stopped** | When you manually cancel a print |
-| **Progress Milestones** | At 25%, 50%, and 75% progress |
-| **Printer Offline** | When a printer disconnects |
-| **Printer Error** | When HMS errors are detected |
-| **Low Filament** | When filament is running low |
-
-Enable/disable each event per provider.
-
----
-
-## Quiet Hours
-
-Suppress notifications during sleep or focus time:
-
-1. Enable **Quiet Hours** toggle
-2. Set **Start Time** (e.g., 22:00)
-3. Set **End Time** (e.g., 07:00)
-
-Notifications during quiet hours are silently skipped.
-
----
-
-## Per-Printer Filtering
-
-Limit notifications to specific printers:
-
-1. Open provider settings
-2. Find **Printer** dropdown
-3. Select a specific printer (or "All Printers")
-
-Only events from the selected printer(s) trigger notifications.
-
----
-
-## Daily Digest
-
-Batch notifications into a daily summary:
-
-1. Enable **Daily Digest** toggle
-2. Set **Digest Time** (e.g., 08:00)
-
-### How It Works
-- Individual events are collected (not sent immediately)
-- At digest time, one summary notification is sent
-- Summary includes counts and details of all events
-
-### Example Digest
-```
-Daily Print Summary:
-- 3 prints completed
-- 1 print failed
-- Total print time: 8h 45m
-- Filament used: 245g
-```
-
----
-
-## Message Templates
-
-Customize notification messages using variables:
-
-### Accessing Templates
-1. Go to **Settings** > **Notifications**
-2. Click **Templates** tab
-3. Click any event type to edit
-
-### Using Variables
-Insert dynamic content using `{variable}` syntax:
-- Click variable buttons to insert
-- Preview with sample data
-- Save to apply changes
-
-### Available Variables
-
-**Print Start**
-- `{printer}` - Printer name
-- `{filename}` - Print filename
-- `{estimated_time}` - Estimated duration
-
-**Print Complete**
-- `{printer}`, `{filename}`
-- `{duration}` - Actual print time
-- `{filament_grams}` - Filament used
-
-**Print Failed**
-- `{printer}`, `{filename}`, `{duration}`
-- `{reason}` - Failure reason
-
-**Print Progress**
-- `{printer}`, `{filename}`
-- `{progress}` - Percentage complete
-- `{remaining_time}` - Time remaining
-
-**Printer Offline**
-- `{printer}`
-
-**Printer Error**
-- `{printer}`
-- `{error_type}` - HMS error type
-- `{error_detail}` - Error description
-
-**Filament Low**
-- `{printer}`
-- `{slot}` - AMS slot number
-- `{remaining_percent}` - Filament remaining
-- `{color}` - Filament color
-
-**Common Variables** (all events)
-- `{timestamp}` - Event time
-- `{app_name}` - "Bambuddy"
-
-### Reset to Default
-Click the reset button on any template to restore the original message.
-
----
-
-## Testing Notifications
-
-Before relying on notifications:
-
-1. Configure your provider
-2. Click **Send Test**
-3. Verify you receive the test message
-4. If it fails, check configuration and try again
-
----
-
-## Tips
-
-- Use **ntfy** for the simplest setup (no account needed)
-- Enable **quiet hours** to avoid middle-of-night alerts
-- Set up **multiple providers** for redundancy
-- Use **progress milestones** for long prints
-- Configure **printer filtering** if you have multiple printers
-- Customize **templates** to include only the info you need

+ 0 - 156
docs/wiki/Features-Print-Archiving.md

@@ -1,156 +0,0 @@
-# Print Archiving
-
-Bambuddy automatically archives every print with full metadata extraction, creating a searchable history of all your 3D prints.
-
-## How It Works
-
-When a print completes on any connected printer:
-
-1. **Detection**: Bambuddy detects the print completion via MQTT
-2. **Download**: The 3MF file is downloaded from the printer via FTPS
-3. **Extraction**: Metadata is extracted from the 3MF (layers, filament, settings)
-4. **Storage**: Everything is saved to the `archive/` directory
-5. **Display**: The print appears in your Archives with a thumbnail
-
-## What Gets Archived
-
-### Files
-- **3MF File**: Complete print file (can be re-printed later)
-- **Thumbnail**: Preview image from the slicer
-- **Timelapse**: Video if enabled on printer (auto-attached or manual)
-- **Finish Photo**: Automatic camera capture on completion
-
-### Metadata
-| Field | Description |
-|-------|-------------|
-| Print Time | Estimated vs actual duration |
-| Filament | Material type, color, weight used |
-| Layers | Total count and layer height |
-| Temperatures | Nozzle and bed temperatures |
-| Printer | Which printer completed the job |
-| Result | Success, failed, or stopped |
-| Colors | Multi-color prints show color swatches |
-
----
-
-## Archive Features
-
-### 3D Model Preview
-Click any archive to open an interactive Three.js viewer:
-- Rotate, zoom, and pan the model
-- View from different angles
-- See the actual geometry that was printed
-
-### Duplicate Detection
-Bambuddy automatically detects when you've printed the same model before:
-- **SHA256 hash** matches exact file content
-- **Purple badge** indicates duplicates
-- **"Duplicates" filter** shows all duplicate prints
-- View duplicate history in archive details
-
-### Print Time Accuracy
-Compare estimated vs actual print times:
-- **Green badge**: Accurate (within 5%)
-- **Blue badge**: Faster than estimated
-- **Orange badge**: Slower than estimated
-- Per-printer accuracy statistics available
-
-### Photo Attachments
-Document your prints with photos:
-- **Automatic finish photo**: Camera captures when print completes
-- **Manual uploads**: Add your own photos
-- Multiple photos per archive supported
-
-### Failure Analysis
-When a print fails, document what went wrong:
-- Add failure notes
-- Attach photos of the failure
-- Track failure patterns over time
-
----
-
-## Managing Archives
-
-### Filtering & Search
-- **By Printer**: Show prints from specific printers
-- **By Date**: Filter by time range
-- **By Status**: Success, failed, stopped
-- **By Collection**: Custom collections you create
-- **Search**: Find by filename
-
-### Context Menu Actions
-Right-click any archive card for:
-- **Re-print**: Send to any connected printer
-- **Schedule**: Add to print queue
-- **Project Page**: View/edit MakerWorld metadata
-- **Scan for Timelapse**: Find matching timelapse
-- **Delete**: Remove from archive
-
-### Collections
-Organize archives into custom collections:
-1. Right-click an archive
-2. Select "Add to Collection"
-3. Create or select a collection
-4. Filter archives by collection
-
----
-
-## Project Page Editor
-
-3MF files from MakerWorld contain embedded project pages with:
-- Model title and description
-- Designer information
-- License details
-- Preview images
-
-### Viewing Project Pages
-1. Right-click an archive
-2. Select "Project Page"
-3. View all embedded information
-
-### Editing Project Pages
-1. Open the project page
-2. Click "Edit"
-3. Modify title, description, or other fields
-4. Click "Save" (changes are saved to the 3MF file)
-
----
-
-## Re-printing Archives
-
-Send any archived print back to a printer:
-
-1. Right-click the archive
-2. Select "Re-print" or "Schedule"
-3. Choose a target printer
-4. Optionally set a scheduled time
-5. Confirm to start the print
-
-The 3MF file is uploaded via FTP and the print starts automatically.
-
----
-
-## Storage
-
-Archives are stored in the `archive/` directory:
-```
-archive/
-├── {printer_id}/
-│   ├── {archive_id}/
-│   │   ├── model.3mf
-│   │   ├── thumbnail.png
-│   │   ├── timelapse.mp4 (if available)
-│   │   └── photos/
-│   │       └── finish.jpg
-```
-
-The SQLite database (`bambuddy.db`) stores metadata and indexes.
-
----
-
-## Tips
-
-- **Enable timelapse** on your printer to automatically capture print videos
-- **Enable camera capture** in settings for automatic finish photos
-- Use **collections** to organize prints by project or client
-- Check **duplicate detection** before reprinting to see previous results

+ 0 - 181
docs/wiki/Features-Print-Queue.md

@@ -1,181 +0,0 @@
-# Print Queue & Scheduling
-
-Schedule prints for specific times with powerful automation including smart plug integration for automatic power control.
-
-## Overview
-
-The print queue allows you to:
-- Queue multiple prints per printer
-- Schedule prints for specific date/time
-- Automatically power on printers before scheduled prints
-- Automatically power off after prints complete
-- Drag-and-drop queue reordering
-
----
-
-## Adding Prints to Queue
-
-### From Archives
-1. Go to the **Archives** page
-2. Right-click an archive
-3. Select **Schedule** (or click the calendar icon)
-4. Choose options:
-   - **Printer**: Select target printer
-   - **Scheduled Time**: Leave empty for "next available" or pick a specific time
-   - **Auto Power Off**: Turn off printer when complete
-5. Click **Add to Queue**
-
-### Queue Options
-| Option | Description |
-|--------|-------------|
-| **Printer** | Which printer to send the job to |
-| **Scheduled Time** | When to start (empty = ASAP) |
-| **Auto Power Off** | Power off printer after completion |
-
----
-
-## Managing the Queue
-
-### Queue Page
-Access the dedicated queue page to see all queued prints across all printers.
-
-### Per-Printer Queue
-Click the queue icon on any printer card to see that printer's queue.
-
-### Queue Item States
-| State | Description |
-|-------|-------------|
-| **Pending** | Waiting for scheduled time or previous print |
-| **Waiting** | Scheduled time reached, waiting for printer |
-| **Uploading** | Transferring 3MF to printer |
-| **Printing** | Currently printing |
-| **Completed** | Print finished successfully |
-| **Failed** | Print failed or was cancelled |
-
-### Reordering
-Drag and drop queue items to change print order:
-1. Click and hold the grip handle
-2. Drag to new position
-3. Release to reorder
-
-> Note: Only pending items can be reordered. Active prints cannot be moved.
-
-### Cancelling Prints
-- **Pending items**: Click the X button to remove
-- **Active prints**: Click the stop button (with confirmation)
-
----
-
-## Automation Flow
-
-When a scheduled print is ready to start:
-
-```
-1. Scheduled time reached
-        ↓
-2. Smart plug powers ON (if configured)
-        ↓
-3. Wait for printer connection (up to 2 minutes)
-        ↓
-4. Upload 3MF via FTP
-        ↓
-5. Start print command sent
-        ↓
-6. Monitor progress in real-time
-        ↓
-7. Print completes
-        ↓
-8. If "Auto Power Off" enabled:
-   - Wait for nozzle to cool below 50°C
-   - Power off smart plug
-```
-
----
-
-## Smart Plug Integration
-
-For full automation, link a smart plug to your printer. See [Smart Plug Integration](Features-Smart-Plugs) for setup.
-
-### Pre-Print Power On
-When a scheduled print is about to start:
-1. Bambuddy sends power-on command to smart plug
-2. Waits for printer to boot and connect
-3. Proceeds with print upload once connected
-
-### Post-Print Power Off
-When a print completes with "Auto Power Off" enabled:
-1. Waits for nozzle temperature to drop below threshold
-2. Sends power-off command to smart plug
-3. Marks queue item as complete
-
----
-
-## Scheduling Tips
-
-### Overnight Prints
-Schedule long prints to start overnight:
-1. Queue the print with a late evening start time
-2. Enable "Auto Power Off"
-3. Printer runs while you sleep and turns off when done
-
-### Morning Warm-Up
-Schedule a print to start before you arrive:
-1. Set start time 30 minutes before arrival
-2. Printer warms up and starts
-3. Print is running when you get there
-
-### Batch Printing
-Queue multiple prints for sequential execution:
-1. Add all prints to the queue (no scheduled time)
-2. First print starts immediately
-3. Each subsequent print starts when the previous completes
-
----
-
-## Error Handling
-
-### Connection Timeout
-If the printer doesn't connect within 2 minutes after power-on:
-- Queue item marked as failed
-- Error message displayed
-- Smart plug remains on (manual intervention needed)
-
-### Upload Failure
-If FTP upload fails:
-- Automatic retry (up to 3 attempts)
-- Queue item marked as failed if all retries fail
-
-### Print Failure
-If the print fails mid-job:
-- Queue item marked as failed
-- Next queued item does NOT auto-start
-- Manual intervention required
-
----
-
-## Queue Notifications
-
-Get notified about queue events:
-- **Print Started**: When a queued print begins
-- **Print Completed**: When a queued print finishes
-- **Print Failed**: When a queued print fails
-
-Configure notifications in [Push Notifications](Features-Notifications).
-
----
-
-## Limitations
-
-- One active print per printer at a time
-- Scheduled prints require the printer to be available
-- Smart plug automation requires compatible Tasmota device
-- Queue items expire after 24 hours if printer remains unavailable
-
----
-
-## Tips
-
-- Use "Auto Power Off" for energy savings and safety
-- Schedule long prints during off-peak electricity hours
-- Keep the queue page open to monitor progress
-- Set up notifications to know when prints complete

+ 0 - 221
docs/wiki/Features-Smart-Plugs.md

@@ -1,221 +0,0 @@
-# Smart Plug Integration
-
-Control Tasmota-based smart plugs for automated power management of your 3D printers.
-
-## Overview
-
-Smart plug integration enables:
-- Automatic power-on when prints start
-- Safe power-off after prints complete (with cooldown)
-- Scheduled power on/off times
-- Power consumption monitoring
-- Energy alerts
-
----
-
-## Supported Devices
-
-Any smart plug running [Tasmota](https://tasmota.github.io/docs/) firmware with HTTP API enabled:
-
-### Popular Compatible Devices
-- Sonoff S31 / S26
-- Gosund smart plugs
-- Teckin smart plugs
-- Treatlife smart plugs
-- Any ESP8266/ESP32-based plug with Tasmota
-
-### Requirements
-- Tasmota firmware installed
-- HTTP API enabled (default)
-- Same network as Bambuddy server
-
----
-
-## Setting Up a Smart Plug
-
-### Step 1: Flash Tasmota (if needed)
-If your plug doesn't have Tasmota:
-1. Follow the [Tasmota installation guide](https://tasmota.github.io/docs/Getting-Started/)
-2. Configure WiFi to connect to your network
-3. Note the plug's IP address
-
-### Step 2: Add to Bambuddy
-1. Go to **Settings** > **Smart Plugs**
-2. Click **Add Plug**
-3. Enter the plug's IP address
-4. Click **Test** to verify connection
-5. Enter a name (auto-filled from device if available)
-6. Optionally add authentication credentials
-7. Click **Add**
-
-### Step 3: Link to Printer
-1. In the plug settings, find **Linked Printer**
-2. Select the printer this plug controls
-3. The plug is now associated with that printer
-
----
-
-## Automation Options
-
-### Master Toggle
-**Enabled**: Turns all automation on/off for this plug
-
-### Auto Power On
-When enabled, the plug turns on automatically when:
-- A print starts on the linked printer
-- A scheduled print is about to begin
-
-### Auto Power Off
-When enabled, the plug turns off after:
-- A print completes successfully
-- The delay mode conditions are met
-
----
-
-## Delay Modes
-
-Control when the printer powers off after a print completes:
-
-### Time-Based Delay
-Wait a fixed number of minutes:
-- Range: 1-60 minutes
-- Use case: Simple cooldown period
-- Example: Power off 15 minutes after print ends
-
-### Temperature-Based Delay
-Wait until nozzle cools down:
-- Default threshold: 50°C (configurable)
-- Safer for the printer and environment
-- Monitors actual nozzle temperature
-
-> **Recommendation**: Use temperature-based delay for safety. Hot nozzles can be a fire hazard.
-
----
-
-## Scheduled Power On/Off
-
-Set daily schedules for automatic power control:
-
-### Scheduled Power On
-Turn on the plug at a specific time each day:
-- Use case: Warm up printer before work hours
-- Example: Power on at 8:00 AM
-
-### Scheduled Power Off
-Turn off the plug at a specific time each day:
-- Use case: Safety shutoff at night
-- Example: Power off at 11:00 PM
-
-### Configuring Schedules
-1. Expand the plug settings panel
-2. Enable **Scheduled On** and/or **Scheduled Off**
-3. Set the desired time for each
-4. Schedules run daily at the specified times
-
----
-
-## Power Monitoring
-
-For Tasmota plugs with energy monitoring (e.g., Sonoff S31):
-
-### Live Power Display
-- Current wattage shown on plug card
-- Updates in real-time
-
-### Power Alerts
-Get notified when power consumption exceeds a threshold:
-1. Enable **Power Alert** in plug settings
-2. Set **Power Threshold** in watts (e.g., 200W)
-3. Receive notification when threshold exceeded
-
-### Use Cases for Power Alerts
-- Detect printer issues (unexpected high power)
-- Confirm heater failures (power too low during printing)
-- Verify printer is actively heating/printing
-
----
-
-## Manual Control
-
-Each plug card displays:
-- **Status**: ON / OFF / Offline
-- **Power**: Current consumption (if supported)
-- **On/Off buttons**: Manual toggle
-
-Click the buttons to manually control the plug at any time.
-
----
-
-## Plug Settings Panel
-
-Expand any plug card to access all settings:
-
-| Setting | Description |
-|---------|-------------|
-| **Name** | Display name for the plug |
-| **IP Address** | Network address of the plug |
-| **Username/Password** | Authentication (if Tasmota requires it) |
-| **Linked Printer** | Which printer this plug controls |
-| **Enabled** | Master automation toggle |
-| **Auto On** | Power on when print starts |
-| **Auto Off** | Power off when print completes |
-| **Delay Mode** | Time-based or temperature-based |
-| **Delay Value** | Minutes or temperature threshold |
-| **Scheduled On/Off** | Daily power schedule |
-| **Power Alert** | Enable consumption alerts |
-| **Power Threshold** | Wattage for alerts |
-
----
-
-## Troubleshooting
-
-### Plug Not Responding
-1. Verify IP address is correct
-2. Check plug is on the same network
-3. Test via browser: `http://<plug-ip>/cm?cmnd=Power`
-4. Access Tasmota web UI: `http://<plug-ip>`
-
-### Authentication Issues
-If Tasmota has a password:
-1. Edit the plug in Bambuddy
-2. Enter username and password
-3. Save and test connection
-
-### Auto Power-Off Not Working
-1. Verify plug is linked to a printer
-2. Check Enabled, Auto On, Auto Off toggles
-3. For temperature mode: ensure printer is still connected
-4. Check logs for error messages
-
-### Power Monitoring Not Showing
-- Not all plugs support power monitoring
-- Requires Tasmota with energy module
-- Check Tasmota console for power readings
-
----
-
-## Best Practices
-
-### Safety First
-- Always use temperature-based delay for power-off
-- Set a scheduled power-off time as a safety net
-- Don't leave printers unattended for extended periods
-
-### Network Reliability
-- Use static IP or DHCP reservation for plugs
-- Ensure strong WiFi signal at plug location
-- Consider wired connection if reliability is critical
-
-### Printer Compatibility
-- Ensure your printer handles power cycling gracefully
-- Some printers need manual intervention after power-on
-- Test the automation flow before relying on it
-
----
-
-## Tips
-
-- Use power monitoring to track electricity costs
-- Set up power alerts to detect print failures
-- Combine with print scheduling for full automation
-- Schedule power-off at night for safety and savings

+ 0 - 218
docs/wiki/Features-Spoolman.md

@@ -1,218 +0,0 @@
-# Spoolman Integration
-
-Sync your AMS filament data with [Spoolman](https://github.com/Donkie/Spoolman) for comprehensive filament inventory management.
-
-## Overview
-
-When enabled, Bambuddy syncs AMS filament data with your Spoolman server:
-- Track remaining filament across all spools
-- Automatic usage deduction during prints
-- Auto-create spools and filaments in Spoolman
-- Support for multiple printers and AMS units
-
----
-
-## Prerequisites
-
-- A running Spoolman server (self-hosted or Docker)
-- Bambu Lab spools with original RFID tags in your AMS
-- Printer connected to Bambuddy
-
----
-
-## Setting Up Spoolman
-
-### Step 1: Enable Integration
-1. Go to **Settings** > scroll to **Spoolman Integration**
-2. Enable the **Enable Spoolman** toggle
-
-### Step 2: Configure Connection
-1. Enter your Spoolman server URL:
-   - Example: `http://192.168.1.100:7912`
-   - Include protocol (http/https) and port
-2. Click **Save**
-
-### Step 3: Connect
-1. Click **Connect** to establish the connection
-2. Status should change to "Connected"
-3. If connection fails, verify URL and network access
-
----
-
-## Sync Modes
-
-### Automatic Sync
-AMS data syncs automatically when changes are detected:
-- Filament loaded/unloaded
-- Filament usage during prints
-- AMS slot changes
-
-Enable automatic sync for hands-off operation.
-
-### Manual Only
-Sync only when you explicitly request it:
-- Click the **Sync** button
-- Select specific printer or "All Printers"
-- Results show how many trays were synced
-
----
-
-## How Syncing Works
-
-### Tray UUID Matching
-Bambuddy matches AMS spools to Spoolman using the **tray UUID**:
-- Unique 32-character identifier
-- Assigned by Bambu Lab to each original spool
-- Consistent across different printers
-
-### What Gets Synced
-
-| Data | Direction | Description |
-|------|-----------|-------------|
-| Remaining weight | AMS → Spoolman | Current filament amount |
-| Usage during print | AMS → Spoolman | Deducted from inventory |
-| Filament type | AMS → Spoolman | PLA, PETG, ABS, etc. |
-| Color | AMS → Spoolman | Spool color |
-
-### Auto-Creation
-
-When a Bambu Lab spool is detected that doesn't exist in Spoolman:
-
-1. **Vendor**: "Bambu Lab" vendor created if needed
-2. **Filament**: Filament type created (matched by material/color)
-3. **Spool**: New spool created with:
-   - Tray UUID as identifier
-   - Material type and color
-   - Comment noting auto-creation
-
----
-
-## Supported Spools
-
-### Bambu Lab Original Spools ✓
-- Have valid RFID tags with tray UUIDs
-- Full sync support
-- Automatic matching
-
-### Third-Party Spools ✗
-These are gracefully skipped (no errors):
-- SpoolEase refilled spools
-- Other refilled spools
-- Generic filament without RFID
-- Spools with invalid/missing UUIDs
-
-> Third-party spools don't cause sync errors—they're simply skipped.
-
----
-
-## Manual Sync
-
-When using manual sync mode:
-
-1. Go to **Settings** > **Spoolman Integration**
-2. Select a printer from the dropdown (or "All Printers")
-3. Click **Sync**
-4. Results display:
-   - Number of trays synced
-   - Any skipped spools
-   - Error messages if applicable
-
----
-
-## Viewing Synced Data
-
-### In Spoolman
-After syncing, check your Spoolman interface:
-- New spools appear in inventory
-- Remaining amounts are updated
-- Usage history is recorded
-
-### In Bambuddy
-AMS data displayed on printer cards shows:
-- Slot colors and materials
-- Remaining filament percentages
-- Sync status indicators
-
----
-
-## Troubleshooting
-
-### Connection Issues
-
-**"Connection refused" or timeout**
-- Verify Spoolman URL is correct
-- Check server is running: `http://<spoolman-ip>:7912/api/v1/info`
-- Ensure no firewall blocking port 7912
-- Verify same network or proper routing
-
-**"Invalid URL"**
-- Include protocol: `http://` or `https://`
-- Include port: `:7912`
-- No trailing slash
-
-### Sync Issues
-
-**"No spools synced"**
-- Verify AMS has spools loaded
-- Check spools have valid RFID (original Bambu Lab)
-- Ensure printer is connected
-
-**"Third-party spools skipped"**
-- This is normal behavior
-- SpoolEase and refilled spools don't have valid UUIDs
-- No action needed
-
-**"Spool not found in Spoolman"**
-- Auto-creation should handle this
-- Check Spoolman logs for errors
-- Verify Spoolman API is accessible
-
-### Data Mismatch
-
-**Spoolman shows wrong amount**
-- Manual edits in Spoolman override synced data
-- Re-sync to update from AMS
-- AMS sensor may have calibration issues
-
----
-
-## Best Practices
-
-### Initial Setup
-1. Do a full manual sync first
-2. Verify all spools appear in Spoolman
-3. Then enable automatic sync
-
-### Filament Changes
-- Sync after loading new spools
-- Spoolman updates automatically during prints
-- Check periodically for accuracy
-
-### Multiple Printers
-- Each printer's AMS syncs independently
-- Same spool moved between printers is tracked by UUID
-- Use "All Printers" sync for comprehensive update
-
----
-
-## API Endpoints
-
-Bambuddy uses these Spoolman API endpoints:
-
-| Endpoint | Purpose |
-|----------|---------|
-| `/api/v1/info` | Connection test |
-| `/api/v1/spool` | List/create spools |
-| `/api/v1/filament` | List/create filaments |
-| `/api/v1/vendor` | List/create vendors |
-| `/api/v1/spool/{id}/use` | Record usage |
-
----
-
-## Tips
-
-- Use automatic sync for seamless tracking
-- Check Spoolman periodically for accuracy
-- Original Bambu Lab spools work best
-- Third-party spools need manual tracking in Spoolman
-- Export Spoolman data for backup

+ 0 - 153
docs/wiki/Features-Statistics.md

@@ -1,153 +0,0 @@
-# Statistics Dashboard
-
-The Statistics page provides analytics and insights about your printing activity through customizable, drag-and-drop widgets.
-
-## Dashboard Widgets
-
-### Print Success Rate
-Track reliability across all printers:
-- **Success**: Completed prints
-- **Failed**: Prints that failed mid-job
-- **Stopped**: Manually cancelled prints
-- Visual pie chart breakdown
-- Per-printer filtering available
-
-### Filament Usage
-Monitor material consumption:
-- **By material type**: PLA, PETG, ABS, etc.
-- **By color**: Breakdown of colors used
-- **Over time**: Trend charts
-- **Total weight**: Cumulative usage in grams/kg
-
-### Print Activity Calendar
-GitHub-style contribution calendar showing:
-- Daily print activity
-- Color intensity = number of prints
-- Click any day to see prints from that date
-- Identify patterns in your printing habits
-
-### Cost Tracking
-Calculate printing costs:
-- **Per print**: Based on filament used
-- **Total costs**: Cumulative spending
-- **By material**: Cost breakdown by filament type
-- Requires filament costs to be configured
-
-### Time Accuracy
-Analyze estimated vs actual print times:
-- **Average accuracy**: How close estimates are
-- **Per-printer breakdown**: Compare printer accuracy
-- **Trend over time**: Is accuracy improving?
-- Helps calibrate expectations for future prints
-
-### Print Duration Distribution
-Understand your typical print lengths:
-- Histogram of print durations
-- Short vs long print patterns
-- Average print time
-
----
-
-## Customizing Your Dashboard
-
-### Drag and Drop
-Rearrange widgets by clicking and dragging the grip handle:
-1. Hover over a widget header
-2. Click the grip icon (⋮⋮)
-3. Drag to new position
-4. Release to drop
-
-### Resizing Widgets
-Change widget sizes:
-1. Click the resize icon on any widget
-2. Cycles through: 1/4 width → 1/2 width → Full width
-3. Layout adjusts automatically
-
-### Hiding Widgets
-Remove widgets you don't need:
-1. Click the eye icon on any widget
-2. Widget is hidden from view
-3. Re-enable from widget settings
-
-### Reset Layout
-Return to default layout:
-1. Click "Reset Layout" button
-2. All widgets return to original positions and sizes
-
-### Persistence
-Your layout preferences are saved automatically and persist across sessions.
-
----
-
-## Filtering Data
-
-### Time Range
-Filter statistics by date range:
-- Last 7 days
-- Last 30 days
-- Last 90 days
-- All time
-- Custom range
-
-### Printer Selection
-View statistics for:
-- All printers combined
-- Individual printers
-- Compare across printers
-
----
-
-## Filament Cost Configuration
-
-To enable cost tracking:
-
-1. Go to **Settings** > **Filaments**
-2. Add your filaments with costs:
-   - Material type (PLA, PETG, etc.)
-   - Color
-   - Cost per kg
-   - Vendor (optional)
-3. Statistics will calculate costs based on usage
-
----
-
-## Export Data
-
-Export your statistics:
-- **CSV format**: For spreadsheets
-- **Date range**: Select period to export
-- **Fields**: Print name, duration, filament, cost, etc.
-
----
-
-## Widget Details
-
-### Print Count Widget
-- Total prints in selected period
-- Comparison to previous period
-- Growth/decline indicator
-
-### Filament by Type Widget
-- Pie chart of material distribution
-- Click segments to filter
-- Legend with exact amounts
-
-### Printer Utilization Widget
-- Hours of active printing
-- Idle time percentage
-- Per-printer breakdown
-
-### Recent Activity Widget
-- Latest completed prints
-- Quick status overview
-- Click to view archive details
-
----
-
-## Tips
-
-- Check the dashboard weekly to spot trends
-- Use per-printer filtering to identify reliability issues
-- Configure filament costs for accurate expense tracking
-- Export data monthly for record keeping
-- Watch time accuracy to improve print estimates

+ 0 - 141
docs/wiki/Getting-Started.md

@@ -1,141 +0,0 @@
-# Getting Started
-
-This guide will help you set up your first printer and start using Bambuddy.
-
-## Prerequisites
-
-Before adding a printer, ensure:
-- Bambuddy is running (see [Installation](Installation))
-- Your printer is powered on and connected to your network
-- You have access to your printer's settings
-
----
-
-## Enabling LAN Mode on Your Printer
-
-Bambuddy connects to printers via LAN Mode. Here's how to enable it:
-
-### Step 1: Enable Developer Mode (if required)
-Some printer models require Developer Mode to be enabled first:
-1. On your printer's touchscreen, go to **Settings**
-2. Navigate to **General** or **About**
-3. Look for **Developer Mode** and enable it
-
-### Step 2: Enable LAN Mode
-1. Go to **Settings** > **Network** > **LAN Mode**
-2. Toggle **LAN Mode** to **ON**
-3. Note down the **Access Code** displayed (8 characters)
-
-### Step 3: Find Your Printer's Information
-You'll need these details:
-- **IP Address**: Found in **Settings** > **Network**
-- **Serial Number**: Found in **Settings** > **Device Info**
-- **Access Code**: Shown when LAN Mode is enabled
-
-> **Tip**: The access code changes every time you toggle LAN Mode off and on.
-
----
-
-## Adding Your First Printer
-
-1. Open Bambuddy in your browser (default: http://localhost:8000)
-2. Go to the **Printers** page
-3. Click **Add Printer**
-4. Enter the following information:
-   - **Name**: A friendly name (e.g., "Workshop X1C")
-   - **IP Address**: Your printer's local IP
-   - **Access Code**: The 8-character code from LAN Mode
-   - **Serial Number**: Your printer's serial number
-5. Click **Save**
-
-The printer should connect automatically. You'll see:
-- A **green indicator** when connected
-- Real-time status updates (temperatures, print progress, etc.)
-
----
-
-## Understanding the Interface
-
-### Printers Page
-- **Printer Cards**: Show real-time status for each printer
-- **HMS Status**: Health Management System indicator (green = OK)
-- **Temperature Readouts**: Nozzle, bed, and chamber temperatures
-- **Print Progress**: Current layer, time remaining, filament usage
-
-### Archives Page
-- **Archive Cards**: All completed prints with thumbnails
-- **Filters**: Sort by printer, date, status, collections
-- **Search**: Find prints by name
-- **Context Menu**: Right-click for actions (re-print, delete, etc.)
-
-### Statistics Page
-- **Drag-and-drop Widgets**: Customize your dashboard
-- **Print Success Rate**: Track reliability
-- **Filament Usage**: Monitor material consumption
-- **Cost Tracking**: Calculate printing costs
-
----
-
-## Your First Archived Print
-
-Once your printer is connected, Bambuddy automatically archives completed prints:
-
-1. Start a print on your Bambu Lab printer (via Bambu Studio, Handy, or the printer itself)
-2. Bambuddy detects the print and monitors progress
-3. When the print completes:
-   - The 3MF file is downloaded via FTP
-   - Metadata is extracted (layers, filament, temperatures, etc.)
-   - A thumbnail is generated
-   - The print appears in your Archives
-
-### What Gets Archived
-- **3MF File**: The complete print file
-- **Thumbnail**: Preview image from the slicer
-- **Metadata**: Print time, filament usage, layer count, temperatures
-- **Finish Photo**: Automatic camera capture (if enabled)
-- **Print Result**: Success, failed, or stopped status
-
----
-
-## Keyboard Shortcuts
-
-Navigate quickly with keyboard shortcuts:
-
-| Key | Action |
-|-----|--------|
-| `1` | Go to Printers |
-| `2` | Go to Archives |
-| `3` | Go to Statistics |
-| `4` | Go to Cloud Profiles |
-| `5` | Go to Settings |
-| `?` | Show keyboard shortcuts |
-
----
-
-## Mobile Access
-
-Bambuddy works on phones and tablets:
-
-- **Hamburger Menu**: Tap the menu icon to open navigation
-- **Touch-Friendly**: All controls are sized for easy tapping
-- **Responsive Layout**: Pages adapt to smaller screens
-- **Context Menus**: Tap the three-dot icon on cards for actions
-
----
-
-## Next Steps
-
-Now that you're set up, explore these features:
-
-- **[Print Queue & Scheduling](Features-Print-Queue)** - Schedule prints for later
-- **[Smart Plug Integration](Features-Smart-Plugs)** - Automate power control
-- **[Push Notifications](Features-Notifications)** - Get alerts on your phone
-- **[Spoolman Integration](Features-Spoolman)** - Track filament inventory
-
----
-
-## Having Issues?
-
-- **Printer won't connect?** See [Troubleshooting](Troubleshooting#printer-connection-issues)
-- **Prints not archiving?** See [Troubleshooting](Troubleshooting#archiving-issues)
-- **Need help?** Open an [issue on GitHub](https://github.com/maziggy/bambuddy/issues)

+ 0 - 57
docs/wiki/Home.md

@@ -1,57 +0,0 @@
-# Bambuddy Wiki
-
-Welcome to the Bambuddy documentation! Bambuddy is a self-hosted print archive and management system for Bambu Lab 3D printers.
-
-## Quick Links
-
-| Getting Started | Features | Reference |
-|-----------------|----------|-----------|
-| [Installation](Installation) | [Print Archiving](Features-Print-Archiving) | [API Documentation](API-Reference) |
-| [Getting Started](Getting-Started) | [Real-time Monitoring](Features-Monitoring) | [Troubleshooting](Troubleshooting) |
-| [Adding Your First Printer](Getting-Started#adding-your-first-printer) | [Print Queue & Scheduling](Features-Print-Queue) | [Environment Variables](Installation#environment-variables) |
-
-## Feature Documentation
-
-### Core Features
-- **[Print Archiving](Features-Print-Archiving)** - Automatic 3MF archiving with metadata extraction
-- **[Real-time Monitoring](Features-Monitoring)** - Live printer status, temperatures, and progress
-- **[Statistics Dashboard](Features-Statistics)** - Print analytics, success rates, and cost tracking
-
-### Automation
-- **[Print Queue & Scheduling](Features-Print-Queue)** - Schedule prints with smart plug automation
-- **[Smart Plug Integration](Features-Smart-Plugs)** - Tasmota-based power control and monitoring
-- **[Push Notifications](Features-Notifications)** - Multi-provider alerts (WhatsApp, Telegram, Discord, etc.)
-
-### Integrations
-- **[Spoolman Integration](Features-Spoolman)** - Filament inventory sync
-- **[Cloud Profiles](Features-Cloud-Profiles)** - Bambu Cloud slicer preset management
-- **[K-Profiles](Features-K-Profiles)** - Pressure advance settings management
-
-### Maintenance & Management
-- **[Maintenance Tracker](Features-Maintenance)** - Schedule and track printer maintenance
-- **[File Manager](Features-File-Manager)** - Browse and manage printer SD card files
-- **[External Links](Features-External-Links)** - Add custom sidebar links to external tools
-
-## Supported Printers
-
-| Series | Models | Status |
-|--------|--------|--------|
-| H2 Series | H2C, H2D, H2S | Tested (H2D) |
-| X1 Series | X1, X1 Carbon | Tested (X1C) |
-| P1 Series | P1P, P1S | Needs Testing |
-| A1 Series | A1, A1 Mini | Needs Testing |
-
-> **Testers Needed!** If you have a printer model that needs testing, please help by reporting your experience in [GitHub Issues](https://github.com/maziggy/bambuddy/issues).
-
-## Requirements
-
-- **Python 3.10+** (3.11 or 3.12 recommended)
-- **Node.js 18+** (only for building frontend from source)
-- Bambu Lab printer with **LAN Mode** enabled
-- Printer and server on the same local network
-
-## Need Help?
-
-- Check the [Troubleshooting](Troubleshooting) guide
-- Search [existing issues](https://github.com/maziggy/bambuddy/issues)
-- Open a [new issue](https://github.com/maziggy/bambuddy/issues/new) if you're stuck

+ 0 - 236
docs/wiki/Installation.md

@@ -1,236 +0,0 @@
-# Installation
-
-This guide covers all methods for installing Bambuddy on your system.
-
-## Quick Install (Linux/macOS)
-
-```bash
-# Clone the repository
-git clone https://github.com/maziggy/bambuddy.git
-cd bambuddy
-
-# Create and activate virtual environment
-python3 -m venv venv
-source venv/bin/activate
-
-# Install Python dependencies
-pip install -r requirements.txt
-
-# Start the server
-uvicorn backend.app.main:app --host 0.0.0.0 --port 8000
-```
-
-Open http://localhost:8000 in your browser.
-
----
-
-## Detailed Installation
-
-### Step 1: Install Prerequisites
-
-#### macOS
-```bash
-# Install Homebrew if not installed
-/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
-# Install Python and Node.js
-brew install python@3.12 node
-```
-
-#### Ubuntu/Debian
-```bash
-sudo apt update
-sudo apt install python3 python3-venv python3-pip nodejs npm git
-```
-
-#### Windows
-1. Download and install [Python 3.12](https://www.python.org/downloads/) (check "Add to PATH")
-2. Download and install [Node.js LTS](https://nodejs.org/)
-3. Download and install [Git](https://git-scm.com/download/win)
-
-### Step 2: Clone the Repository
-
-```bash
-git clone https://github.com/maziggy/bambuddy.git
-cd bambuddy
-```
-
-### Step 3: Set Up Python Environment
-
-#### Linux/macOS
-```bash
-python3 -m venv venv
-source venv/bin/activate
-pip install --upgrade pip
-pip install -r requirements.txt
-```
-
-#### Windows (PowerShell)
-```powershell
-python -m venv venv
-.\venv\Scripts\Activate.ps1
-pip install --upgrade pip
-pip install -r requirements.txt
-```
-
-#### Windows (Command Prompt)
-```cmd
-python -m venv venv
-venv\Scripts\activate.bat
-pip install --upgrade pip
-pip install -r requirements.txt
-```
-
-### Step 4: Build Frontend (Optional)
-
-The repository includes pre-built frontend files in `/static`. To build from source:
-
-```bash
-cd frontend
-npm install
-npm run build
-cd ..
-```
-
-### Step 5: Run the Application
-
-```bash
-uvicorn backend.app.main:app --host 0.0.0.0 --port 8000
-```
-
-Open http://localhost:8000 in your browser.
-
----
-
-## Running as a Service (Linux)
-
-Create a systemd service for automatic startup:
-
-```bash
-sudo nano /etc/systemd/system/bambuddy.service
-```
-
-Add the following content (adjust paths):
-
-```ini
-[Unit]
-Description=Bambuddy Print Archive
-After=network.target
-
-[Service]
-Type=simple
-User=YOUR_USERNAME
-WorkingDirectory=/home/YOUR_USERNAME/bambuddy
-Environment="PATH=/home/YOUR_USERNAME/bambuddy/venv/bin"
-ExecStart=/home/YOUR_USERNAME/bambuddy/venv/bin/uvicorn backend.app.main:app --host 0.0.0.0 --port 8000
-Restart=always
-RestartSec=10
-
-[Install]
-WantedBy=multi-user.target
-```
-
-Enable and start:
-
-```bash
-sudo systemctl daemon-reload
-sudo systemctl enable bambuddy
-sudo systemctl start bambuddy
-
-# Check status
-sudo systemctl status bambuddy
-
-# View logs
-sudo journalctl -u bambuddy -f
-```
-
----
-
-## Docker Installation (Coming Soon)
-
-```bash
-docker run -d \
-  --name bambuddy \
-  -p 8000:8000 \
-  -v bambuddy_data:/app/data \
-  -v bambuddy_archive:/app/archive \
-  maziggy/bambuddy:latest
-```
-
----
-
-## Environment Variables
-
-Configure Bambuddy using environment variables or a `.env` file:
-
-```bash
-cp .env.example .env
-```
-
-| Variable | Default | Description |
-|----------|---------|-------------|
-| `DEBUG` | `false` | Enable debug mode (verbose logging, SQL queries) |
-| `LOG_LEVEL` | `INFO` | Log level: `DEBUG`, `INFO`, `WARNING`, `ERROR` |
-| `LOG_TO_FILE` | `true` | Write logs to `logs/bambuddy.log` |
-
-### Production Settings (default)
-- INFO level logging
-- SQLAlchemy and HTTP library noise suppressed
-- Logs written to `logs/bambuddy.log` (5MB rotating, 3 backups)
-
-### Development Settings (`DEBUG=true`)
-- DEBUG level logging (verbose)
-- All SQL queries logged
-- Useful for troubleshooting printer connections
-
-Example `.env` for development:
-```bash
-DEBUG=true
-LOG_TO_FILE=true
-```
-
----
-
-## Updating Bambuddy
-
-### Manual Update
-```bash
-cd bambuddy
-git pull origin main
-
-# Activate virtual environment
-source venv/bin/activate  # Linux/macOS
-# or: .\venv\Scripts\Activate.ps1  # Windows PowerShell
-
-# Update dependencies
-pip install -r requirements.txt
-
-# Rebuild frontend (if needed)
-cd frontend
-npm install
-npm run build
-cd ..
-
-# Restart the application
-```
-
-### Auto Updates
-Bambuddy includes automatic update checking. Go to **Settings** to check for updates and apply them with one click.
-
----
-
-## Network Requirements
-
-| Port | Protocol | Purpose |
-|------|----------|---------|
-| 8000 | HTTP | Bambuddy web interface |
-| 8883 | MQTT/TLS | Printer communication |
-| 990 | FTPS | File transfers |
-
-Ensure your firewall allows these connections between Bambuddy and your printers.
-
----
-
-## Next Steps
-
-Once installed, proceed to [Getting Started](Getting-Started) to add your first printer.

+ 0 - 392
docs/wiki/Troubleshooting.md

@@ -1,392 +0,0 @@
-# Troubleshooting
-
-Solutions to common issues with Bambuddy.
-
-## Printer Connection Issues
-
-### Printer Won't Connect
-
-**Check LAN Mode**
-1. On printer: **Settings** > **Network** > **LAN Mode**
-2. Ensure LAN Mode is **enabled**
-3. Note the **Access Code** (changes when toggled)
-
-**Verify Credentials**
-- **IP Address**: Correct local IP (not cloud address)
-- **Access Code**: 8-character code from LAN Mode screen
-- **Serial Number**: Found in **Settings** > **Device Info**
-
-**Network Issues**
-- Printer and Bambuddy must be on same network
-- Check printer can be pinged: `ping <printer-ip>`
-- Ensure ports 8883 (MQTT) and 990 (FTP) aren't blocked
-
-**Other Applications**
-- Only one MQTT connection allowed per printer
-- Close Bambu Studio or Bambu Handy
-- Disconnect other monitoring tools
-
-### "Connection Refused" Errors
-
-**Printer in Sleep Mode**
-- Wake the printer and try again
-- Sleep mode disconnects MQTT
-
-**Another Connection Active**
-- Close Bambu Studio
-- Close Bambu Handy
-- Wait 30 seconds and retry
-
-**Printer Restart**
-- Power cycle the printer
-- Wait for full boot
-- Try connecting again
-
-### Intermittent Disconnections
-
-**Network Stability**
-- Check WiFi signal strength at printer
-- Consider wired connection if available
-- Reduce network congestion
-
-**Printer Firmware**
-- Update to latest firmware
-- Some versions have MQTT bugs
-
-**Bambuddy Logs**
-- Check `logs/bambuddy.log` for errors
-- Enable DEBUG mode for more detail
-
----
-
-## Archiving Issues
-
-### Prints Not Archiving Automatically
-
-**Check Connection**
-- Printer must show green (connected)
-- Verify real-time updates are working
-
-**Print Completion**
-- Only completed prints are archived
-- Cancelled prints may not archive
-- Check print actually finished
-
-**FTP Access**
-- Verify FTP connectivity
-- Check logs for FTP errors
-
-**View Logs**
-```bash
-tail -f logs/bambuddy.log
-```
-Look for archiving-related errors.
-
-### 3MF Download Fails
-
-**FTP Connection**
-- Port 990 must be accessible
-- Check firewall settings
-- Verify printer responds to FTP
-
-**File Still in Use**
-- Wait for print to fully complete
-- Printer may still be processing
-
-**Storage Full**
-- Check Bambuddy server disk space
-- Check `archive/` directory size
-
-### Missing Thumbnails
-
-**3MF Content**
-- Some 3MF files lack thumbnails
-- Manually sliced files may not have previews
-
-**Extraction Issue**
-- Check logs for thumbnail errors
-- Re-archive the print if needed
-
----
-
-## Timelapse Issues
-
-### Timelapse Not Attaching Automatically
-
-**Printer Clock Issue** (Most Common)
-When printers run in LAN-only mode, they can't sync time via NTP. The internal clock drifts, causing timelapse matching to fail.
-
-**Symptoms:**
-- "No matching timelapse found"
-- Files exist on printer but don't attach
-- Printer shows wrong date/time
-
-**Workaround - Manual Selection:**
-1. Right-click archive > **Scan for Timelapse**
-2. If no auto-match, dialog shows available files
-3. Select the correct timelapse
-4. Click to attach
-
-**Permanent Fix:**
-1. Temporarily connect printer to internet
-2. Wait for NTP time sync
-3. Return to LAN-only mode
-4. Clock remains accurate until power cycle
-
-### Timelapse Recording Not Working
-
-**Enable in Printer Settings**
-1. On printer: **Settings** > **Camera**
-2. Enable **Timelapse Recording**
-
-**Storage Space**
-- Timelapses need SD card space
-- Clear old files if full
-
----
-
-## Frontend Issues
-
-### Frontend Not Loading
-
-**Build the Frontend**
-```bash
-cd frontend
-npm install
-npm run build
-```
-
-**Verify Static Files**
-- Check `/static` folder exists
-- Contains `index.html` and `/assets`
-
-**Clear Browser Cache**
-- Hard refresh: Ctrl+Shift+R (Cmd+Shift+R on Mac)
-- Try incognito/private window
-
-### Blank Page or Errors
-
-**Browser Console**
-- Open DevTools (F12)
-- Check Console for errors
-- Look for failed network requests
-
-**API Connection**
-- Backend must be running
-- Check backend logs for errors
-- Verify port 8000 is accessible
-
-### WebSocket Not Connecting
-
-**Check Backend**
-- Backend must be running
-- WebSocket endpoint: `/api/v1/ws`
-
-**Firewall/Proxy**
-- WebSocket needs persistent connection
-- Some proxies block WebSocket
-- Check network configuration
-
----
-
-## Database Issues
-
-### Database Errors
-
-**Backup and Reset**
-```bash
-# Backup current database
-mv bambuddy.db bambuddy.db.backup
-
-# Restart Bambuddy - creates new database
-uvicorn backend.app.main:app --host 0.0.0.0 --port 8000
-```
-
-**Migration Issues**
-- New versions may change schema
-- Usually handled automatically
-- Check logs for migration errors
-
-### Data Not Persisting
-
-**File Permissions**
-- Bambuddy needs write access to:
-  - `bambuddy.db`
-  - `archive/` directory
-  - `logs/` directory
-
-**Disk Space**
-- Ensure adequate free space
-- SQLite needs space for transactions
-
----
-
-## Smart Plug Issues
-
-### Plug Not Responding
-
-**Network**
-1. Verify IP address is correct
-2. Check plug is on same network
-3. Test directly: `http://<plug-ip>/cm?cmnd=Power`
-
-**Tasmota Web Interface**
-- Access `http://<plug-ip>`
-- Verify Tasmota is running
-- Check for firmware updates
-
-**Authentication**
-- If Tasmota has password, configure in Bambuddy
-- Check credentials are correct
-
-### Auto Power-Off Not Working
-
-**Configuration**
-1. Plug must be linked to printer
-2. Automation must be enabled
-3. Auto Off must be enabled
-
-**Temperature Mode**
-- Printer must stay connected
-- Bambuddy reads nozzle temp
-- Check temp threshold setting
-
-**Time Mode**
-- Verify delay value is set
-- Check logs for power-off attempts
-
----
-
-## Scheduled Print Issues
-
-### Print Not Starting
-
-**Printer Not Ready**
-- Printer must be idle
-- No active prints
-- Printer must connect after power-on
-
-**Smart Plug**
-- If using auto power-on, plug must work
-- Verify plug automation is configured
-
-**Queue Status**
-- Check queue page for errors
-- Look for failed status
-
-### "Failed to Start" Error
-
-**Common Causes**
-- Printer not ready or connected
-- FTP upload failed
-- HMS errors preventing print
-
-**Check:**
-1. Printer HMS status (no errors)
-2. Printer is idle and connected
-3. FTP port 990 accessible
-4. File exists in archive
-
----
-
-## Notification Issues
-
-### Not Receiving Notifications
-
-**Provider Configuration**
-- Verify credentials are correct
-- Use **Send Test** to verify
-- Check provider-specific requirements
-
-**Event Triggers**
-- Ensure desired events are enabled
-- Check per-printer filtering
-
-**Quiet Hours**
-- Notifications suppressed during quiet hours
-- Verify quiet hours settings
-
-### Test Works But Events Don't
-
-**Event Not Triggering**
-- Verify event type is enabled
-- Check printer filter settings
-- Look for errors in logs
-
-**Daily Digest**
-- If enabled, events are batched
-- Wait for digest time
-- Or disable digest for immediate notifications
-
----
-
-## Performance Issues
-
-### Slow Interface
-
-**Browser**
-- Clear cache and cookies
-- Try different browser
-- Disable browser extensions
-
-**Backend**
-- Check server resources
-- Review logs for errors
-- Consider DEBUG=false for production
-
-### High Memory Usage
-
-**Large Archives**
-- Many archives increase memory
-- Consider archiving to external storage
-- Clean up old/unwanted archives
-
-**Multiple Printers**
-- Each printer uses MQTT connection
-- Normal for multi-printer setups
-
----
-
-## Viewing Logs
-
-### Log File Location
-```bash
-# Default location
-logs/bambuddy.log
-
-# View live
-tail -f logs/bambuddy.log
-
-# Search for errors
-grep -i error logs/bambuddy.log
-```
-
-### Enable Debug Logging
-```bash
-DEBUG=true uvicorn backend.app.main:app --host 0.0.0.0 --port 8000
-```
-
-### Systemd Service Logs
-```bash
-sudo journalctl -u bambuddy -f
-```
-
----
-
-## Getting Help
-
-### Before Asking for Help
-1. Check this troubleshooting guide
-2. Review logs for error messages
-3. Search [existing issues](https://github.com/maziggy/bambuddy/issues)
-4. Enable DEBUG mode and reproduce the issue
-
-### Reporting Issues
-When opening an issue, include:
-- Bambuddy version
-- Printer model
-- Operating system
-- Relevant log snippets
-- Steps to reproduce
-
-[Open a new issue](https://github.com/maziggy/bambuddy/issues/new)

+ 0 - 22
docs/wiki/_Sidebar.md

@@ -1,22 +0,0 @@
-## Getting Started
-- [Home](Home)
-- [Installation](Installation)
-- [Getting Started](Getting-Started)
-
-## Features
-- [Print Archiving](Features-Print-Archiving)
-- [Real-time Monitoring](Features-Monitoring)
-- [Statistics Dashboard](Features-Statistics)
-- [Print Queue & Scheduling](Features-Print-Queue)
-- [Smart Plugs](Features-Smart-Plugs)
-- [Push Notifications](Features-Notifications)
-- [Spoolman Integration](Features-Spoolman)
-- [Cloud Profiles](Features-Cloud-Profiles)
-- [K-Profiles](Features-K-Profiles)
-- [Maintenance Tracker](Features-Maintenance)
-- [File Manager](Features-File-Manager)
-- [External Links](Features-External-Links)
-
-## Reference
-- [API Reference](API-Reference)
-- [Troubleshooting](Troubleshooting)

File diff suppressed because it is too large
+ 0 - 0
icons/7a3afd1aa53c47e38ea7e55356403f99.svg


Some files were not shown because too many files changed in this diff