Commit Graph
4583 Commits
Author SHA1 Message Date
Rojo ef029ad9eb Sum the lifetime counter for REST plugs in all-time energy stats (#3232) (#3233) 2026-10-04 14:30:35 +02:00
maziggy 7f00816f7f List only online printers and loaded spools in the Slice dialog (#3172)
The person slicing is often away from the printer, and the useful filaments
are the ones already loaded. Two optional filters in the Slice dialog narrow
the printer profiles to the models online now and the filament profiles to
the spools loaded in them, and a Pick button fills a filament row and its
colour from a loaded spool.

A new route returns the connected printers and their slots in one call,
limited to the caller's printers. A spool is matched by the profile saved
for its slot, then that profile's copy for the selected printer, then its
brand text. Both filters are off by default, fall back to the full lists
when they would leave nothing, and never replace a profile the user chose.
2026-10-04 14:11:31 +02:00
maziggy d336bb2ad2 Merge printer-scoped access (#1727) and the queue review gate (#1620) into dev
Groups can be limited to printers and whole locations, managed on the new
Printer access page, and jobs can wait for staff review before they print.

Merging onto the current dev:
- The Printer Locations page keeps to the same access rules: a rename keeps
  its groups' access, deleting a granted location or moving printers into or
  out of one needs an admin and drops the stale grant, and a user limited to
  some printers sees and changes only their own locations.
- The overlay logo checks its token without a printer, which the stricter
  overlay check now needs and the logo route doesn't have.
2026-10-04 13:29:57 +02:00
maziggy 3480d39434 Browse a Manyfold library and import its files (issue #1471)
The MakerWorld page becomes Model Sources, with a MakerWorld tab and a
Manyfold tab. Bambuddy signs in to a self-hosted Manyfold with an OAuth
application (public read scopes), lists and searches its models with their
previews, and imports 3MF, STL and STEP files into the library, from where
they are sliced and printed like any other file.

New permissions manyfold:view and manyfold:import are granted once to the
groups that hold the matching MakerWorld permissions. The client secret is
never returned and is left out of GitHub backups. The Manyfold URL and every
redirect pass the LAN-service URL check. Old /makerworld links open the
MakerWorld tab.

Several files import at once: tick files in a model, or Select all, then
Import selected or Import all; or tick models in the grid and import all
their printable files. Files import one after another, failures don't stop
the rest, and a summary reports the outcome.
2026-10-04 13:09:25 +02:00
maziggy 967fe80baa Remember the streaming overlay builder's choices in the browser
Every choice in Settings → Camera → Streaming Overlay was lost on reload
or when leaving the page. They are now kept in local storage, checked
like an imported URL when read back; the token is never stored. A Reset
choices link restores the defaults.

A "Settings saved" toast confirms each change once the edits settle.
2026-10-04 11:45:54 +02:00
maziggy 6954cff3ee Turn on the chamber light while the camera is in use
A printer kept dark between uses showed a black live view and sent black
notification photos (#1655). Settings → Camera can turn the light on for
all printers or for selected ones, for the live view, notification
photos, the finish photo and the snapshot API that Home Assistant uses,
and turns it off 15 seconds after the last use. It only turns off a
light it turned on, and switching the light by hand hands it back.
Snapshots wait an adjustable delay after the light comes on. Timelapse,
the Obico check and the in-print frame bank don't switch it, since they
would make it flash.

The camera card no longer lists every printer: external cameras are
added from a searchable printer picker and only those printers are
listed, so large farms get a short page.
2026-10-04 11:26:07 +02:00
maziggy 5869bdb5e4 Give camera settings their own tab and sort the settings menu
External cameras (General) and camera tokens plus the Streaming Overlay
builder (API Keys) move to a new Camera tab. Old links to the tokens or
the builder, /camera-tokens included, open it. API Keys is hidden from a
user who may see nothing on it. The settings menu keeps General first and
sorts the other tabs by their label in the interface language.

Also lets the Connected Apps fields shrink so Add app stays inside its
card, and fixes the pt-BR camera button label.
2026-10-04 10:09:09 +02:00
maziggy e197cc4267 Post work PR #3207 2026-10-04 09:40:58 +02:00
Adam Spice 3596eb0c31 Create streaming overlay tokens and import existing URLs (#3207) 2026-10-04 09:37:14 +02:00
maziggy 384903328e Charge every filament that shares a tray, not just the first (#3230)
The 3MF pass skipped a tray once it had charged it, so a second slicer
filament mapped to the same tray was never deducted, and a single-filament
print that switched trays and came back lost its last segment. Deduplicate
by slicer slot instead. Trays covered before the pass, and trays only
guessed by position that were already charged, are still skipped; charged
trays are still reported to the remain% fallback.
2026-10-04 09:11:21 +02:00
maziggy 4feea94912 Add a back link to the Printer Locations page
The page is opened from the Printers page and is not in the sidebar, so
the browser's back button was the only way out. Add a "Back to Printers"
link above the title, translated in all locales.
2026-10-04 08:40:32 +02:00
maziggy 902f09a7fe Notify a flickering HMS fault once, not on every return (#3226)
Track a last-seen time per fault instead of one set per printer, with a
10-minute window. Faults seen before the print resumes, starts or
finishes are forgotten as soon as they are gone, so a fixed runout that
recurs is still reported.
2026-10-03 15:31:51 +02:00
WATARIE fa25956738 Easy management of printer locations (groups) (issue #2962)- #2970 (#2995) 2026-10-03 14:28:35 +02:00
M2ABRAMSTANK 3ce9b917cb fix(db): cap SQLite pool fd bill + raise container nofile — prevents fd-exhaustion DB corruption (#2884) 2026-10-03 13:44:50 +02:00
maziggy 844052c956 Post work PR #2803 2026-10-03 13:31:58 +02:00
Martin Grolmus 0a3e341584 Map each printer against its own AMS, and stop dispatching a job whose filament is not loaded (#2799) (#2803) 2026-10-03 13:28:26 +02:00
maziggy f31aa90207 Keep the tag when a spool is lifted during a Spoolman link or quick-add
In Spoolman mode, Assign Spool and Add to Inventory on the SpoolBuddy
kiosk took the tag UID from the live reader state, which is cleared when
the spool leaves the reader. Lifting it while a dialog was open made the
link fail, and quick-add left an untagged spool behind. Use the tag on
the card, as local inventory already does.
2026-10-03 12:38:00 +02:00
maziggyandKeybored02 12e543b1b4 Fix SpoolBuddy reading the filament type as the Bambu spool ID (#984)
The daemon took tray_uuid from tag blocks 4-5, which hold the filament
type, so every spool of one type sent the same value and the kiosk never
saved it. Read block 9, which both tags of a spool share and the AMS
reports as tray_uuid. Save it on kiosk quick-add and link in local and
Spoolman mode, and give spools added before the fix their tray_uuid when
their exact tag UID is scanned again. Drop any tray_uuid that is not a v4
UUID, so daemons that are not updated yet keep matching by tag UID.

Block 9 read based on #1200 by @Keybored02.

Co-Authored-By: Keybored02 <Keybored02@users.noreply.github.com>
2026-10-03 12:19:04 +02:00
maziggy 7ca76efdff Post work PR #3209 2026-10-03 11:34:32 +02:00
Adam Spice 21a278e676 Add landscape and portrait streaming overlay outputs (#3209) 2026-10-03 11:26:53 +02:00
maziggy 4ac4e5d494 Post work PR #3208 2026-10-03 09:36:58 +02:00
Adam Spice 67d3e7e869 Add stream overlay logos and progress colours (#3208) 2026-10-03 09:33:13 +02:00
maziggy ea0fa7ad43 Post work PR #3119 2026-10-03 09:17:36 +02:00
akshayy29 3c77912044 Fix File Manager filename column collapse (#3119) 2026-10-03 09:11:12 +02:00
maziggy f33f4fe694 Updated BACKERS 2026-10-03 08:11:54 +02:00
maziggy f9080d1130 Corrected version 2026-10-02 17:38:15 +02:00
maziggy 098fa5273f Security hardening 2026-10-02 17:29:19 +02:00
maziggy bc649befc3 fix(tests): check label text in the content stream, not the whole PDF 2026-10-02 16:39:19 +02:00
maziggy 6439013201 Updated CHANGELOG 2026-10-02 15:53:21 +02:00
maziggy 30f3b3b5f2 chore(deps): bump PyJWT to 2.15.1, urllib3 to 2.8.0, virtualenv floor 2026-10-02 15:52:13 +02:00
maziggy c2619455ca Updated CHANGELOG 2026-10-02 15:46:23 +02:00
maziggy b4a1cd8da0 chore(deps): bump dompurify to 3.4.16 2026-10-02 15:45:17 +02:00
maziggy bb3a846a98 Updated CHANGELOG 2026-10-02 15:40:36 +02:00
maziggy 56e067753a fix(db): PostgreSQL pool default fits a stock server 2026-10-02 15:39:07 +02:00
maziggy 44718b2d2f Updated CHANGELOG 2026-10-02 15:23:48 +02:00
maziggy 222e27ad43 Post work PR #3020 2026-10-02 15:20:39 +02:00
maziggy 78ae1beddc File Manager: a third view mode, Miller columns (#3190) 2026-10-02 15:20:12 +02:00
maziggy 96c35462d6 Post work PR #3020 2026-10-02 14:45:31 +02:00
Thomansky 413633d811 File Manager: a third view mode, Miller columns (#3190) 2026-10-02 14:41:44 +02:00
maziggy 03cfccdaf6 Updated README 2026-10-02 14:23:02 +02:00
maziggy 1505f8a61d Updated README 2026-10-02 14:22:48 +02:00
maziggy d7e99c1e53 Put back a slot's K-profile when the printer loses it (#3219) 2026-10-02 14:22:37 +02:00
maziggy d68a0888b8 Updated BACKERS 2026-10-02 14:22:25 +02:00
maziggy b102739cd6 Restart a camera stream that keeps repeating one frame (#3218, #3189)
After an RTSP session dropped, ffmpeg could keep writing the same JPEG
    indefinitely with no connection to the printer left (two hours at ~29 fps
    on a P2S), and every check that counts frames saw a healthy stream. The
    stream now restarts ffmpeg after 20 s without a changed frame, on the
    existing reconnect path, while viewers stay attached. If the first frame
    after the restart is the same picture again, the camera really shows a
    still scene (a dark, idle chamber): it is then only re-checked every
    5 minutes until the picture changes.
2026-10-02 14:22:13 +02:00
maziggy 14a5e33e47 Configure Orca Cloud filaments with their own filament ID (#3216)
OrcaSlicer's Sync filaments finds a slot's preset by the slot's filament
    ID alone. The Configure dialog looked up an Orca profile's ID in the
    browser and quietly sent the generic for the material when that came back
    empty, so Orca custom filaments reached the slicer as Generic and the log
    showed nothing. configure now resolves the ID on the server from
    orca_profile_id, follows inherits to the parent profile or the Bambu
    filament it was copied from, logs the outcome and reports a fallback,
    which the dialog shows as a warning.

    Slot presets also store the filament ID they were written with, so the
    slot card and the Configure dialog stop showing a preset once the slot is
    changed from OrcaSlicer's Device tab or the printer.

    Re-configuring a slot for another filament no longer carries over the old
    filament's active K-profile, which switched the slot back to the old
    filament.
2026-10-02 14:21:59 +02:00
maziggy e555469158 Stop firmware lookups when "Check printer firmware" is off 2026-10-02 14:21:43 +02:00
maziggy 9d694ecdaa Keep the Announcements entry for whoever may see announcements 2026-10-02 14:21:30 +02:00
maziggy 855ab1cdc1 Post work PR #3213 2026-10-02 14:21:14 +02:00
maziggy 5770ab88d7 Renew overlay camera connections after silent stalls (#3213) 2026-10-02 14:21:04 +02:00
maziggy 48bba41342 Post work PR #3212 2026-10-02 14:20:47 +02:00