Moved documentation to it's own repository

This commit is contained in:
maziggy
2025-12-09 14:41:05 +00:00
parent 8e6e999ab7
commit 07f4d4482f
20 changed files with 10 additions and 3531 deletions
-305
View File
@@ -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.
-245
View File
@@ -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
-186
View File
@@ -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
-171
View File
@@ -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
-205
View File
@@ -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
-205
View File
@@ -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
-151
View File
@@ -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
-277
View File
@@ -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
-156
View File
@@ -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
-181
View File
@@ -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
-221
View File
@@ -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
-218
View File
@@ -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
-153
View File
@@ -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
-141
View File
@@ -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)
-57
View File
@@ -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
-236
View File
@@ -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.
-392
View File
@@ -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)
-22
View File
@@ -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)