Commit Graph
324 Commits
Author SHA1 Message Date
maziggy 53eff03fb5 Added debug logging for printer's hour counter and current active AMS slot mapping 2026-01-04 08:08:10 +01:00
maziggy 815866c364 Demo video 2026-01-03 13:00:02 +01:00
maziggy 3c336b0da2 Fixed bug in camera stream stuck detection 2026-01-03 11:03:00 +01:00
maziggy 02f437b349 Added admin link to Tasmota power plugs card 2026-01-03 10:59:27 +01:00
maziggy a308248880 Camera stream is now reconnecting if stream stucks 2026-01-03 10:51:37 +01:00
maziggy 0f229889fb Improved printer's slot card detail modal "link to spoolman" function 2026-01-03 10:44:06 +01:00
maziggy 226094982d Fixed active AMS slot display 2026-01-03 10:38:26 +01:00
maziggy 5dae3d3021 Fixed bug in skip objects modal, where the object ID markers are not correctly positioned over their corresponding objects in the build plate preview 2026-01-03 10:26:06 +01:00
maziggy 55ec08d4d1 Improved cover image retrieval 2026-01-03 10:02:00 +01:00
maziggy c9ad09864d Minor GCode viewer improvements 2026-01-03 09:59:17 +01:00
maziggy 410924a94f Fixed bug where printer card was showing wrong cover image, if print file has multiple plates 2026-01-03 08:36:59 +01:00
maziggy 62a0b8671b Fixed bug in archive card's context menu #46 2026-01-03 08:16:29 +01:00
maziggy d03fe7598f Fixed bug in Spoolman sync 2026-01-03 08:11:55 +01:00
maziggy 74e2d95ea8 Changed version to 0.1.6b6 2026-01-02 17:22:05 +01:00
maziggy 94c961dbaf Add real-time fan status monitoring to printer cards
- Controls section: New section before Filaments with fan status and printer controls
  - Part cooling fan (Fan icon, cyan)
  - Auxiliary fan (Wind icon, blue)
  - Chamber fan (AirVent icon, green)
  - Stop/Pause/Resume buttons moved from Temperature section
- Real-time updates: Fan speeds now broadcast via WebSocket
- Backend: Parse MQTT fan data (cooling_fan_speed, big_fan1_speed, big_fan2_speed)
  - Convert 0-15 scale to 0-100%
- Always-visible badges with dynamic coloring based on fan state
- Removed horizontal dividers before Controls and Filaments sections
2026-01-02 16:05:20 +01:00
maziggy 83cbac04b7 - Add interactive API Browser to Settings > API Keys
- New APIBrowser component with full OpenAPI schema integration
    - Fetches and parses /openapi.json automatically
    - Groups endpoints by API tags (printers, archives, settings, etc.)
    - Expandable endpoint sections with color-coded method badges
    - Path parameter, query parameter, and JSON body editors
    - Auto-populates request body with schema examples
    - Live API request execution with response display
    - Response shows status code, timing, and formatted JSON
    - Copy response button with clipboard fallback
    - Search to filter endpoints across all categories
    - Expand All / Collapse All buttons
    - Link to Swagger UI (/docs)

  - Two-column layout for API Keys tab
    - Left: API key management + webhook documentation
    - Right: API Browser with dedicated test key input

  - Parameter validation
    - Shows warning for missing required parameters
    - Validates before sending requests to avoid 422 errors

  - UX improvements
    - "Use in API Browser" button on newly created keys
    - Responsive layout (stacked on mobile, side-by-side on xl+)
2026-01-02 15:00:21 +01:00
maziggy 61c8682fa9 Fixed dark theme's logo 2026-01-02 14:22:31 +01:00
maziggy 021318437d Updated screenshots 2026-01-02 14:12:36 +01:00
maziggy 0f65fb9484 - Bugfixes
- AMS "Unexpected format" warnings fixed - P1S/P1P send partial updates without full tray list (per https://github.com/Doridian/OpenBambuAPI/blob/main/mqtt.md). Now handled correctly.
  - FTP improvements:
    - Added timeouts (60s download, 30s listing)
    - Better logging at INFO level
    - Shows what files exist in /cache
  - Fallback archive - When 3MF can't be downloaded, creates minimal archive so prints are tracked
2026-01-02 13:21:57 +01:00
maziggy ad40dfa67f - Minor fixes 2026-01-02 12:36:16 +01:00
maziggy 29f1fa9732 - Improved Docker environment 2026-01-02 12:28:32 +01:00
maziggy e356d03ee1 - Added new settings tab Filament and moved Spoolman Sync card 2026-01-02 12:00:57 +01:00
maziggy 32bd11ad82 - Fixed bug in update module for Docker based installations 2026-01-02 11:43:48 +01:00
maziggy 5e5eb572b3 - Pre-built Docker images on GitHub Container Registry
- Add multi-architecture support: linux/amd64 and linux/arm64 (Raspberry Pi 4/5)
  - Add docker-publish.sh script for building and pushing images
    - Supports --parallel flag for simultaneous architecture builds
    - Uses Docker Buildx with QEMU emulation
  - Update docker-compose.yml to support both pre-built and source builds
    - `docker compose up -d` pulls pre-built image
    - `docker compose up -d --build` builds from source
2026-01-02 11:21:35 +01:00
maziggyandClaude Opus 4.5 a1c12331db Add Spoolman integration tests and update spool comment
Backend tests:
- 21 integration tests for all Spoolman API endpoints
- Status, connect/disconnect, spools, filaments, link, sync

Frontend tests:
- 20 component tests for SpoolmanSettings
- Rendering, disabled/enabled states, connection status, sync UI

Also changed auto-created spool comment to "Created by Bambuddy"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 10:42:43 +01:00
maziggy ea0bf5f932 - Add print quantity tracking for project progress
- Track number of items per print job (default: 1)
  - Project stats now show total items vs print jobs
  - Progress bar counts items toward target, not just archives
  - "Items Printed" field in archive edit modal

  Backend:
  - Added quantity field to PrintArchive model
  - Database migration for quantity column
  - Updated project stats to use SUM(quantity)
  - Updated backup/restore to include quantity
  - Updated CSV/Excel export with quantity field

  Frontend:
  - Added quantity input to EditArchiveModal
  - Updated ProjectsPage to display total_items
  - Updated ProjectDetailPage stats
  - Fixed project delete not refreshing the list
2026-01-02 10:24:31 +01:00
maziggy 4e25377e5b Updated website 2026-01-02 10:17:21 +01:00
maziggy 019a9822a0 - Fixed bug, where Bambu Lab filament colors not showed correctly
- Added all Bambu Lab filament color tags
2026-01-02 09:41:26 +01:00
maziggy 5b8d24f2ce - Spoolman: Add link spool feature, UUID display, and sync feedback
- Link to Spoolman: Manually link existing Spoolman spools to AMS trays
    - Hover over AMS slot to see "Link to Spoolman" button
    - Select from list of unlinked Spoolman spools
    - Automatically sets extra.tag field in Spoolman
  - Spool UUID display: View and copy Bambu Lab spool UUID in AMS hover card
    - Shows first 8 chars with copy button (full UUID to clipboard)
    - Fallback copy method for HTTP contexts
  - Sync feedback: Shows synced count and skipped spools with reasons
    - Expandable list when more than 5 skipped
    - Color swatches for identification
  - Fixed Spoolman 400 Bad Request: extra field values must be valid JSON
  - Updated documentation (wiki, website)
2026-01-02 09:20:24 +01:00
maziggy fd3919574b - Major fixes for skip objects feature 2026-01-01 18:31:59 +01:00
maziggy 2dcd1a2ef2 - Enhanced skip objects feature with visual improvements and better UX
- Skip Objects Modal:
    - Object ID markers overlaid on preview image (grid layout)
    - Large prominent ID badges to match printer display
    - Info banner explaining to match IDs with printer screen
    - Layer warning when skip unavailable (layer <= 1)
    - Red badge on button showing skipped count
    - Preview image now shown when paused (not just running)
    - Close with ESC key or click outside modal
    - Full light/dark theme support

  - Backend:
    - Extract object positions from 3MF (include_positions=True)
    - API returns x/y coordinates for objects (when available)
    - Parse s_obj from printer MQTT for skipped state persistence
    - Cover URL available in PAUSE/PAUSED states

  - Tests:
    - Added test for objects with position data
2026-01-01 18:01:41 +01:00
maziggy fe250b9b7f - Added frontnend/backend tests for printer controls 2026-01-01 16:02:25 +01:00
maziggy f7994df84f - Added basic printer controls
- Reprint/Stop
  - Pause/Resume
  - AMS slot re-read
2026-01-01 15:52:43 +01:00
maziggy 2c61ba930a Updated version to 0.1.6b4 2026-01-01 14:10:41 +01:00
maziggyandClaude Opus 4.5 1234e44eb2 - Docker update detection for in-app updates
- Added _is_docker_environment() function
  - Check endpoint returns is_docker and update_method fields
  - Apply endpoint rejects Docker with helpful instructions
- Added updates API tests
- Updated CHANGELOG

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 14:06:06 +01:00
MartinNYHC 7e3fcec02d Merge pull request #42 from maziggy/0.1.6b4
v0.1.6b4

### New Features

  # Printer Cards
  - Refactored AMS section for better visual grouping and spacing

### Bugfixes

  ### Printer Hour Counter
  - Fixed runtime_seconds not incrementing during prints
  - Bug fix: first timestamp was set but never committed

  ### Slicer Protocol
  - Add OS detection for slicer protocol handler
  - Windows: `bambustudio://`, macOS/Linux: `bambustudioopen://`
  - Updated all usages in Archives and Model Viewer
  - 
  ### Camera Popup Window
  - Auto-resize to fit video resolution on first open
  - Persist window size and position to localStorage
  - Restore saved window state for subsequent opens

  ### Maintenance Page
  - Improved duration display with better precision (weeks instead of imprecise months)
  - Large print hours now show readable units (e.g., 478h → 3w, 100h → 4d)
v0.1.6b4
2026-01-01 12:38:59 +01:00
maziggy 865f3d78fb Updated CHANGELOG 2026-01-01 12:36:32 +01:00
maziggy 079e9fc2cc - Camera popup window:
- Auto-resize to fit video resolution on first open
  - Persist window size and position to localStorage
  - Restore saved window state for subsequent opens
2026-01-01 12:29:25 +01:00
maziggy d3686a1b60 - Fixed maintenance interval display on status page 2026-01-01 12:21:12 +01:00
maziggy ccdb084f23 - Refactored printer card's AMS section for better experience 2026-01-01 12:08:55 +01:00
maziggy 569dbc3d21 - Printer Hour Counter:
- Fix runtime_seconds never incrementing during prints
  - Bug: first timestamp was set but never committed (updated_count was 0)
  - Add needs_commit flag to ensure timestamp is saved on first iteration
2026-01-01 07:58:23 +01:00
maziggy 01bc211616 - Slicer Protocol:
- Add utils/slicer.ts with OS detection for protocol handler
  - Windows: bambustudio://, macOS/Linux: bambustudioopen://
  - Update all usages in ArchivesPage.tsx and ModelViewerModal.tsx
2026-01-01 07:52:47 +01:00
maziggy 2457577f54 - Added frontend/backend tests for new theme functions
- Fixed some bugs, where settings were not backed up or restored
- Docker: Fixed mounting of database for persistence
2025-12-31 17:07:15 +01:00
maziggy bca1a80172 * Add customizable theme system with style, background, and accent options
Implement comprehensive theme customization with independent settings for
  dark and light modes:

  - Style layer: Classic (clean shadows), Glow (accent-colored glow effects),
    Vibrant (dramatic deep shadows)
  - Background layer: Neutral, Warm, Cool (light mode); plus OLED, Slate,
    Forest (dark mode only)
  - Accent colors: Green, Teal, Blue, Orange, Purple, Red

  All combinations work independently (e.g., Glow + Forest + Teal). Settings
  sync across devices via database and show toast confirmations on change.

  Backend:
  - Add 6 new settings fields (dark_style, dark_background, dark_accent,
    light_style, light_background, light_accent)
  - Add integration test for theme settings API

  Frontend:
  - Refactor index.css with 3-layer CSS variable system
  - Update ThemeContext for dual-mode theme management
  - Add Appearance section to Settings page with 6 dropdowns
  - Update components for new ThemeContext API
2025-12-31 15:44:52 +01:00
MartinNYHC fca1fe9611 Merge pull request #39 from maziggy/0.1.6b3
Housekeeping 0.1.6b3
2025-12-31 12:25:46 +01:00
maziggy 297c3212fa Housekeeping 2025-12-31 12:24:17 +01:00
MartinNYHC ec1828e73a Merge pull request #38 from maziggy/0.1.6b3
0.1.6b3

*  Bug Fixes
    - Fixed printer hour counter inconsistency - Printer card and maintenance page now show consistent hour values (both use Math.round)
    - Improved printer hour tracking accuracy - Introduced real-time runtime counter that tracks actual machine active time (RUNNING/PAUSE states), including calibration, heating, and bed leveling. This provides more accurate hours matching the printer's display
    - Fixed Add Smart Plug modal scrolling - Modal now scrolls properly on lower resolution screens (https://github.com/maziggy/bambuddy/issues/34)
    - Excluded virtual printer from discovery - Bambuddy's own virtual printer no longer appears in "Add Printer → Discovery" results
    - Fixed bottom sidebar layout

*  New Features
    - Confirmation modal for quick power switch - Sidebar smart plug toggle now requires confirmation before turning on/off to prevent accidental clicks

* Repository
   - Added community files: CODE_OF_CONDUCT.md, CONTRIBUTING.md, SECURITY.md
   - Updated screenshots
v0.1.6b3
2025-12-31 12:17:36 +01:00
maziggy 219d26b8ab - Fixed bug in printer's hour counter 2025-12-31 12:01:17 +01:00
maziggy 16c21cf1fa - Added confirmation modal to sidebar's quick power switch 2025-12-31 11:40:14 +01:00
maziggy 9f665a9382 Housekeeping 2025-12-31 11:36:53 +01:00