Compare commits

..

6 Commits

Author SHA1 Message Date
Phil Merricks
9a15762705 feat: improve English UI and ACE filament mapping
Complete English-mode coverage for browser-visible UI strings and console messages.

Extract uploaded G-code/3MF filament metadata and use it to build smarter ACE/AMS slot mappings while preserving existing fallback behavior.

Ignore local config and Codex workspace files generated during development.
2026-05-08 20:56:00 +01:00
ce63cc5e7a fix: YouTube Thumbnail auf hqdefault 2026-05-04 14:39:00 +02:00
5c83cc6df0 docs: Video Tutorial in README 2026-05-04 14:37:10 +02:00
be11217896 release: v0.9.6.1 2026-05-02 21:31:54 +02:00
0292785fd8 release: v0.9.6.1 2026-05-02 21:27:19 +02:00
50419fb487 release: v0.9.6 2026-05-02 20:58:40 +02:00
9 changed files with 480 additions and 163 deletions

3
.gitignore vendored
View File

@@ -1,5 +1,7 @@
.env .env
__pycache__/ __pycache__/
.agents/
.codex/
*.pyc *.pyc
build/ build/
dist/ dist/
@@ -7,3 +9,4 @@ dist/
releases/*/kx-bridge releases/*/kx-bridge
releases/*/extract_credentials releases/*/extract_credentials
releases/*/extract_credentials.exe releases/*/extract_credentials.exe
config/config.ini

View File

@@ -1,5 +1,24 @@
# Changelog # Changelog
## [0.9.6.1] 2026-05-02
### Fixes
- **Upload-Banner:** Banner wird nach Stopp/Abbruch nicht mehr erneut angezeigt — `file_ready` und Thumbnail werden jetzt gecleared wenn der Drucker `stoped` oder `canceled` meldet
---
## [0.9.6] 2026-05-02
### Neu
- **Fortschritts-Karte:** Verstrichen / Slicer-Schätzung / Restzeit als Mini-Cards (gleicher Stil wie Temperaturkarten)
- **Layer-Mini-Card:** Layerzahl als Mini-Card neben der Fortschrittsleiste
### Fixes
- **Slicer-Schätzzeit:** OrcaSlicer schreibt die geschätzte Zeit ans Ende der GCode-Datei — Bridge liest jetzt auch die letzten 64 KB (vorher nur die ersten 16 KB)
- **start.sh:** `config/`-Verzeichnis wird jetzt automatisch erstellt und `config.ini.example` wird beim ersten Start hineinkopiert (Issue #15)
---
## [0.9.5] 2026-05-01 ## [0.9.5] 2026-05-01
### Neu ### Neu

View File

@@ -1,5 +1,24 @@
# Changelog # Changelog
## [0.9.6.1] 2026-05-02
### Fixes
- **Upload banner:** Banner is no longer shown again after print stop/cancel — `file_ready` and thumbnail are now cleared when the printer reports `stoped` or `canceled`
---
## [0.9.6] 2026-05-02
### New
- **Progress card:** Elapsed / Slicer estimate / Remaining time shown as mini-cards (same style as temperature cards)
- **Layer mini-card:** Layer count displayed as mini-card next to the progress bar
### Fixes
- **Slicer estimate time:** OrcaSlicer writes the estimated time at the end of the GCode file — bridge now also scans the last 64 KB (previously only the first 16 KB were checked)
- **start.sh:** `config/` directory is now created automatically and `config.ini.example` is copied into it on first run (Issue #15)
---
## [0.9.5] 2026-05-01 ## [0.9.5] 2026-05-01
### New ### New

View File

@@ -2,7 +2,7 @@
# KX-Bridge Anycubic Kobra X # KX-Bridge Anycubic Kobra X
**Version:** 0.9.5 **Version:** 0.9.6.1
Steuere deinen **Anycubic Kobra X** mit OrcaSlicer — ohne Klipper, ohne Raspberry Pi. Steuere deinen **Anycubic Kobra X** mit OrcaSlicer — ohne Klipper, ohne Raspberry Pi.
KX-Bridge ist eine Moonraker-kompatible Bridge die direkt mit dem Drucker kommuniziert. KX-Bridge ist eine Moonraker-kompatible Bridge die direkt mit dem Drucker kommuniziert.
@@ -46,6 +46,12 @@ Drucker → Verbindungstyp **Moonraker** → Host: `http://BRIDGE-IP:7125`
--- ---
## 📺 Video Tutorial
[![KX-Bridge Setup & Bedienung](https://img.youtube.com/vi/1Ql4wfH27fM/hqdefault.jpg)](https://www.youtube.com/watch?v=1Ql4wfH27fM)
---
## ⚠️ Update von 0.9.1 oder älter ## ⚠️ Update von 0.9.1 oder älter
Ab **0.9.2** speichert KX-Bridge Einstellungen in `config/config.ini` statt in `.env`. Ab **0.9.2** speichert KX-Bridge Einstellungen in `config/config.ini` statt in `.env`.

View File

@@ -2,7 +2,7 @@
# KX-Bridge Anycubic Kobra X # KX-Bridge Anycubic Kobra X
**Version:** 0.9.5 **Version:** 0.9.6.1
Control your **Anycubic Kobra X** with OrcaSlicer — no Klipper, no Raspberry Pi. Control your **Anycubic Kobra X** with OrcaSlicer — no Klipper, no Raspberry Pi.
KX-Bridge is a Moonraker-compatible bridge that communicates directly with the printer. KX-Bridge is a Moonraker-compatible bridge that communicates directly with the printer.
@@ -46,6 +46,12 @@ Printer → Connection type **Moonraker** → Host: `http://BRIDGE-IP:7125`
--- ---
## 📺 Video Tutorial
[![KX-Bridge Setup & Usage](https://img.youtube.com/vi/1Ql4wfH27fM/hqdefault.jpg)](https://www.youtube.com/watch?v=1Ql4wfH27fM)
---
## ⚠️ Upgrading from 0.9.1 or earlier ## ⚠️ Upgrading from 0.9.1 or earlier
Starting with **0.9.2**, KX-Bridge stores settings in `config/config.ini` instead of `.env`. Starting with **0.9.2**, KX-Bridge stores settings in `config/config.ini` instead of `.env`.

View File

@@ -1 +1 @@
0.9.5 0.9.6.1

View File

@@ -2,7 +2,7 @@
# Bridge-Manager: start | stop | restart | status | log # Bridge-Manager: start | stop | restart | status | log
SCRIPT="$(dirname "$0")/kobrax_moonraker_bridge.py" SCRIPT="$(dirname "$0")/kobrax_moonraker_bridge.py"
LOGFILE="/tmp/bridge.log" LOGFILE="/tmp/bridge.log"
PRINTER_IP="192.168.178.94" PRINTER_IP="${PRINTER_IP:-}"
case "${1:-restart}" in case "${1:-restart}" in
start) start)
@@ -11,7 +11,11 @@ case "${1:-restart}" in
fuser -k 7125/tcp 2>/dev/null || pkill -f kobrax_moonraker_bridge 2>/dev/null fuser -k 7125/tcp 2>/dev/null || pkill -f kobrax_moonraker_bridge 2>/dev/null
sleep 1 sleep 1
fi fi
nohup python3 "$SCRIPT" --printer-ip "$PRINTER_IP" > "$LOGFILE" 2>&1 & CMD=(python3 "$SCRIPT")
if [[ -n "$PRINTER_IP" ]]; then
CMD+=(--printer-ip "$PRINTER_IP")
fi
nohup "${CMD[@]}" > "$LOGFILE" 2>&1 &
echo "Bridge gestartet PID=$!" echo "Bridge gestartet PID=$!"
sleep 2; tail -3 "$LOGFILE" sleep 2; tail -3 "$LOGFILE"
;; ;;

File diff suppressed because it is too large Load Diff

View File

@@ -15,6 +15,15 @@ if [[ ! -f .env ]]; then
fi fi
fi fi
# config/ Verzeichnis und config.ini.example anlegen falls nicht vorhanden
mkdir -p config
if [[ ! -f config/config.ini ]] && [[ ! -f config/config.ini.example ]]; then
if [[ -f config.ini.example ]]; then
cp config.ini.example config/config.ini.example
echo "[start] config/config.ini.example aus config.ini.example erstellt"
fi
fi
# Docker verfügbar? # Docker verfügbar?
if ! docker info > /dev/null 2>&1; then if ! docker info > /dev/null 2>&1; then
echo "[start] Docker nicht gefunden bitte Docker installieren." echo "[start] Docker nicht gefunden bitte Docker installieren."