Commit Graph
20 Commits
Author SHA1 Message Date
maziggy ccdb084f23 - Refactored printer card's AMS section for better experience 2026-01-01 12:08:55 +01:00
maziggy 3cba1c0989 - Fix AMS filament matching in reprint modal
- Add fuzzy color matching for filament comparison
    Colors within RGB threshold of 40 are considered a match, fixing
    cases where 3MF and printer report slightly different hex values
    for the same filament color (e.g., beige #F5F5DC vs #FCECD6)

  - Add POST /printers/{id}/refresh-status endpoint
    Sends MQTT pushall command to request fresh AMS data from printer

  - Improve Re-read button in filament check section
    - Now triggers backend refresh before refetching status
    - More prominent styling with text label and border
    - 500ms delay after pushall to allow printer to respond

  - Add AMS slot labels to matched filament display
    Shows location like "PLA (AMS-B Slot 3)" instead of just "PLA"

  - Add color hex tooltips on filament color circles
2025-12-29 10:03:51 +01:00
maziggy 929c4c8cd6 - Fix total print hours calculation in set_total_hours to include all
prints (not just completed), matching get_printer_total_hours behavior
  - Add option to keep or delete archives when deleting a printer
  - Custom maintenance types no longer auto-assign to all printers
  - Add UI to manually assign/remove custom maintenance types per printer
  - Add backend endpoints for assigning types to printers and removing items
  - Exclude static/assets from large file pre-commit check
2025-12-23 09:00:36 +01:00
maziggy 0200f69ba3 - Show detailed printer status stages on printer cards
- Add getStatusDisplay() helper in frontend to format status nicely
  - Add get_derived_status_name() in backend to compute status from:
    - stg_cur calibration stages (bed leveling, vibration comp, etc.)
    - Temperature data when stg_cur unavailable (heating heatbed/nozzle)
  - Include stg_cur and stg_cur_name in WebSocket broadcasts
  - Update broadcast status key to detect heating phase changes

  Printer cards now show: "Heating heatbed", "Heating nozzle", "Preparing",
  "Auto bed leveling", "Cleaning nozzle tip", and 60+ other stage names
  instead of just "Printing" or "Idle".
2025-12-21 10:24:26 +01:00
maziggyandClaude Opus 4.5 a7319f0e70 Fix browser freeze on print completion with camera stream open
Root cause: When a print completed with the camera stream popup open,
spawning a second ffmpeg process for finish photo capture caused a
conflict that froze the browser tab and video window.

Solution: Buffer the last frame from active camera streams. When
capturing finish photo, use the buffered frame if a stream is active
instead of spawning a new ffmpeg process.

Backend changes:
- camera.py: Added _last_frames buffer and get_buffered_frame() helper
- main.py: Photo capture uses buffered frame when stream is active
- main.py: Moved slow operations to background tasks (energy calc,
  photo capture, smart plug, notifications, maintenance)
- archive.py: Fixed sync file write blocking event loop (asyncio.to_thread)
- printers.py: Added debug endpoint to simulate print completion

Frontend changes:
- useWebSocket.ts: Throttled printer status updates (100ms) to prevent
  UI overload from rapid WebSocket messages
- useWebSocket.ts: Debounced archive invalidations (3s) to prevent
  cascade of re-renders on print completion
- useWebSocket.test.ts: Updated tests for throttled/debounced handlers

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 18:45:03 +01:00
maziggy e688c35719 sync 2025-12-07 14:29:54 +00:00
Martin Ziegler e44bc318ac Refactoring AMS module 2025-12-05 16:00:56 +01:00
Martin Ziegler 065f22a0e3 Replaced camera settings with wifi signal in top bar 2025-12-05 13:22:34 +01:00
Martin Ziegler 879a68fea0 Wiring up AMS module 2025-12-05 11:21:03 +01:00
Martin Ziegler 6a6ce3cc22 Wiring up AMS module 2025-12-04 17:59:54 +01:00
Martin Ziegler dd02acd97a Fixed bug in HMS module 2025-12-04 08:18:26 +01:00
Martin Ziegler 3917f0a3d1 Wired motion and extruder controls 2025-12-03 20:07:30 +01:00
Martin Ziegler 9e638e2d0f Wired air condition, speed and light buttons 2025-12-03 16:44:55 +01:00
Martin Ziegler b6af768482 Wiring up calibration modal 2025-12-03 13:44:03 +01:00
Martin Ziegler 071ca1cf4e Wiring up print options: first try. needs mofre reverse engineering for sync process 2025-12-03 11:36:08 +01:00
Martin Ziegler 50a8ed8ea9 Wired up printer parts button 2025-12-02 17:57:08 +01:00
Martin Ziegler 42458974d8 Wired up top status icons and video settings 2025-12-02 17:13:27 +01:00
Martin Ziegler f6836e0fdb Added AMS discovery module 2025-12-02 12:13:48 +01:00
Martin Ziegler 8b2841be1e Added HMS health status; Added MQTT debug log window 2025-11-28 14:08:14 +01:00
Martin Ziegler 09677861ba Added screenshots 2025-11-28 10:23:59 +01:00