Commit Graph

102 Commits

Author SHA1 Message Date
Matt Pumarlo
d6a76a50b5 chore: update translations and references 2026-06-23 08:31:48 -05:00
fd0ce5a63d Merge pull request 'feat: Spoolman filament tracking integration' (#65) from p2l/KX-Bridge-Release:feature/spoolman into master 2026-06-23 14:16:40 +02:00
5bff7adad0 build: sources for v0.9.26 v0.9.26 2026-06-21 21:46:38 +02:00
Phil Merricks
724e98d102 feat: per-slot filament attribution for Spoolman multi-colour tracking
Replace equal-split with poll-based per-slot accumulation using
loaded_slot from multiColorBox/report:

- _spoolman_attribute_tick(activity_map): called each poll cycle after
  both print/report and multiColorBox/report are processed. Attributes
  the supplies_usage delta to whichever slot is currently loaded.
  Skips attribution during loading/unloading transitions (tool changes
  + purges) so filament consumed during a slot swap is not charged to
  the wrong spool.

- _spoolman_unreported(): returns {slot_idx: mm} not yet sent to
  Spoolman. Uses per-slot data when available, falls back to equal
  split for single-extruder/no-AMS setups where _ams_loaded_slot
  stays -1 throughout the print.

- _spoolman_report(): shared fire-and-forget sender used by both
  notify_end and sync_midprint, eliminating duplicated loop logic.

Per-slot state (_spoolman_slot_usage, _spoolman_slot_reported,
_spoolman_last_usage) is reset at print start and when spool
assignments change.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 14:38:45 +01:00
Phil Merricks
0ade456be4 feat: Spoolman filament tracking integration
Adds optional Spoolman (https://github.com/Donkie/Spoolman) integration
for live filament consumption tracking.

Config (config.ini [spoolman] section or env vars):
  SPOOLMAN_SERVER    = http://192.168.x.x:7912
  SPOOLMAN_SYNC_RATE = 30   # mid-print sync interval in seconds (0=end only)

How it works:
- Uses supplies_usage from the printer's own MQTT print/report payload —
  the printer's cumulative extrusion counter in mm, reset each print.
  Discovered via MQTT payload inspection: matches slicer estimate within
  ~1% for model filament, and also captures the printer's purge/prime
  sequence that the slicer doesn't count.
- Reports to Spoolman via PUT /api/v1/spool/{id}/use with use_length (mm),
  letting Spoolman convert to weight using the spool's filament profile.
- Accurate for both completed and cancelled prints — no estimation needed.
- For multi-slot prints, total filament is split equally across mapped spools
  (v1 approximation; per-slot MQTT breakdown not available).

UI changes:
- Filament assignment dialog gains a Spoolman section (hidden when not
  configured): one spool dropdown per assigned AMS slot, loaded async
  from GET /kx/spoolman/spools.
- AMS slot display shows a 🧵 #N badge on any slot with a mapped spool.
- Spool assignments persist across prints (sticky until changed).

New API endpoints:
  GET  /kx/spoolman/status        — configured flag, server URL, slot map
  GET  /kx/spoolman/spools        — spool list proxied from Spoolman
  POST /kx/spoolman/active-spool  — body: {"slot_map": {"0": 42, "1": 17}}

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 20:50:04 +01:00
891b679230 .gitea/ISSUE_TEMPLATE/bug_report.yml hinzugefügt 2026-06-18 15:01:05 +02:00
8ae218321f .gitea/ISSUE_TEMPLATE/bug_report.ym hinzugefügt 2026-06-18 14:56:56 +02:00
ada027bc04 .gitea/ISSUE_TEMPLATE/bug_report.yml 2026-06-18 14:54:02 +02:00
eea570052f build: sources for v0.9.25 v0.9.25 2026-06-17 07:15:31 +02:00
303297bfbf build: sources for v0.9.24 v0.9.24 2026-06-16 21:45:34 +02:00
6b9ad9d426 build: sources for v0.9.23 v0.9.23 2026-06-16 15:15:47 +02:00
ed30568092 build: sources for v0.9.22 v0.9.22 2026-06-16 13:12:04 +02:00
1f300589d1 build: sources for v0.9.21 v0.9.21 2026-06-14 11:00:32 +02:00
930e3774af docs: Portainer-Deployment-Anleitung + docker-compose.portainer.yml
Named-Volume-Compose ohne ENV-Pflichtfelder — Bridge startet im
Offline-Modus, User trägt Drucker-IP in der UI ein.
2026-06-13 00:01:07 +02:00
636889bdbc docs: Filament-Preset-Anleitung als docs/filament-preset-bridge-guide.md hinzugefügt + README-Links aktualisiert 2026-06-09 12:41:23 +02:00
3f6ea269e6 build: sources for v0.9.20 v0.9.20 2026-06-08 23:14:50 +02:00
3fff6e25f0 docs(readme): explicit warning that standalone binaries need anycubic_slicer.crt + .key next to the executable (from anycubic-certs.zip) 2026-06-04 20:34:41 +02:00
0f5a8cbc72 sync: kobrax_moonraker_bridge.py mit Dev-Repo (VERSION-Lookup-Fix) v0.9.19.1 2026-06-04 12:17:46 +02:00
a40f14af8e build: sources for v0.9.19.1 2026-06-04 11:40:02 +02:00
466b8c518d build: sources for v0.9.19.1 2026-06-03 13:12:30 +02:00
1c5396b37d fix(spec): VERSION ins Onefile einbetten — Windows-EXE zeigte vunknown 2026-06-03 13:08:14 +02:00
c23deebde5 docs(changelog): remove internal test-profile name 'Bert - PLA' 2026-06-02 14:34:55 +02:00
76738e5961 release: v0.9.19 v0.9.19 2026-06-02 13:59:53 +02:00
9c82073540 build: sources for v0.9.19 2026-06-02 13:31:47 +02:00
031e34d8ea merge: PR #42 — Dryer toggle false error (@gangoke)
ACE-Dryer setDry geht jetzt fire-and-forget (timeout=0, kein Response-
Check). Drucker führt den Befehl korrekt aus, aber liefert code:0
statt code:200 — was eine 502-Fehlermeldung in der Bridge-UI auslöste
obwohl der Trockner-Toggle eigentlich funktioniert hat.

Pattern identisch zu setAutoFeed (Z.3161).
2026-06-01 14:28:42 +02:00
Gangoke
fc89dfffa5 fire and forget setDry 2026-05-31 17:27:01 -10:00
ac695ecf36 build: sources for v0.9.18 v0.9.18 2026-05-31 19:53:36 +02:00
23b8a69065 merge: PR #40 — Spanish Translation Fixes (@pezfisk)
Native-speaker review der spanischen Übersetzung — fehlende Akzente
(impresión, cámara, después, animación, …) und sprachliche
Korrekturen (Pause→Pausa, Start→Iniciar, Layer→Capa, Stream→Stream).
Zusätzlich neue README.es.md plus Links in README.md + README.de.md.
2026-05-31 18:42:06 +02:00
22dc58258c Spanish translation 2026-05-31 15:47:19 +02:00
e4b4d091f3 Spanish translation 2026-05-31 15:42:28 +02:00
ba209827ce build: sources for v0.9.17 v0.9.17 2026-05-30 19:32:39 +02:00
d26b37b332 build: sources for v0.9.17 2026-05-30 19:29:10 +02:00
6f269833d2 merge: PR #37 — Language Refactor (@gangoke)
Sprach-System modernisiert:
- Inline-JS-Translations → web/translations/{de,en,es,zh-cn}.json
- Toggle-Button → Dropdown mit Globe-Icon
- Browser-Locale-Detection mit LocalStorage-Priorität
- Backend-Route /kx/ui/translations/<lang>.json (regioned codes wie zh-cn)
- de.json fd_used 'GENUTZT' → 'BELEGT' (Slot-Kontext lesbarer)
- ES + ZH-CN sind AI-übersetzt (Hinweis im PR)
2026-05-30 18:28:58 +02:00
d808cd3ea8 fix(de): fd_used 'GENUTZT' → 'BELEGT' (klingt im deutschen Slot-Kontext natürlicher) 2026-05-30 18:28:28 +02:00
Gangoke
ecd444525a additional mappings and translations 2026-05-28 17:40:22 -10:00
Gangoke
d4bb79a68f revert docker-compose to image 2026-05-28 14:43:06 -10:00
Gangoke
cdaf74985c locale detection to auto select language if user didnt change language manually 2026-05-28 14:41:44 -10:00
Gangoke
8383c59b39 language refactor, baseline, de, en, es, zh-cn 2026-05-28 14:34:17 -10:00
1645de4cad fix: Review-Fixes für PR #32 (Content-Disposition + DE-Übersetzungen)
Nach Squash-Merge von #32 die Reviews-Anpassungen nachgereicht, die im
Dev-Repo (viewit/KX-Bridge@7c834bc) bereits enthalten waren:

- Content-Disposition mit RFC5987 filename*=UTF-8 + ASCII-Fallback
- DE-Strings im Verify-Dialog übersetzt (msg/confirm/abort)
2026-05-27 23:38:05 +02:00
gangoke
42898c385c feat: GCode Web-Upload + Download + Verify-Dialog (PR #32)
Übernommen mit Anpassungen aus PR #32 von @gangoke:
- Drag&Drop GCode-Upload
- Download-Button pro Datei
- Web-Upload-Verify-Dialog (persistent Flag, global abschaltbar)

Review-Fixes:
- Content-Disposition mit RFC5987 filename*= + ASCII-Fallback
- DE-Strings übersetzt

Dev-Repo: viewit/KX-Bridge@7c834bc
Co-authored-by: gangoke <gangoke@noreply.localhost>
Co-committed-by: gangoke <gangoke@noreply.localhost>
2026-05-27 23:37:41 +02:00
6c5dd14dbd fix: config/config.ini und data/ ignorieren
Bei lokaler Nutzung von docker-compose im Release-Repo legt die Bridge
config.ini (mit Drucker-Credentials!) und data/ (SQLite, GCode-Store) an.
Diese Pfade dürfen niemals im öffentlichen Release-Repo landen.
2026-05-23 23:18:51 +02:00
c2d16270bc feat: docker-compose nutzt Registry-Image als Default
gitea.it-drui.de/viewit/kx-bridge:latest wird automatisch beim Push gebaut
(multi-arch amd64+arm64). 'build: .' bleibt als Kommentar für Self-Builder.
2026-05-23 23:14:59 +02:00
fd4b9b1254 docs: 'docker compose pull' als Update-Weg im README ergänzen
Bridge wird jetzt automatisch als Multi-Arch-Image (amd64+arm64) nach
gitea.it-drui.de/viewit/kx-bridge gebaut. Nutzer können mit
'docker compose pull && docker compose up -d' updaten.
2026-05-23 23:14:07 +02:00
21cd356757 docs: OrcaSlicer-KX (gepatchter Slicer) im README verlinken 2026-05-23 12:57:50 +02:00
40a27a47fc build: sources for v0.9.16 v0.9.16 2026-05-22 11:26:16 +02:00
7815c66a82 build: sources for v0.9.15 v0.9.15 2026-05-21 21:17:41 +02:00
312b4083d2 build: sources for v0.9.14 v0.9.14 2026-05-21 14:35:25 +02:00
534ea41816 docs: Update-Warnung im 0.9.13-CHANGELOG 2026-05-20 17:56:50 +02:00
f1bfab969c build: sources for v0.9.13 v0.9.13 2026-05-20 15:14:37 +02:00
81729c37a5 build: sources for v0.9.12 v0.9.12 2026-05-20 15:00:02 +02:00