Compare commits

2 Commits

Author SHA1 Message Date
f1bfab969c build: sources for v0.9.13 2026-05-20 15:14:37 +02:00
81729c37a5 build: sources for v0.9.12 2026-05-20 15:00:02 +02:00
8 changed files with 3142 additions and 3006 deletions

View File

@@ -1,5 +1,36 @@
# Changelog
## [0.9.13] 2026-05-20
### Fixes
- **Self-Update war in 0.9.12 kaputt (wichtig):** Der In-App-Updater ersetzte
nur `kobrax_moonraker_bridge.py`, aber seit 0.9.12 importiert diese Datei das
ausgelagerte `_web_assets.py` (gebündeltes Frontend). Ein Update auf 0.9.12
crashte daher mit `ModuleNotFoundError: No module named '_web_assets'` und die
Bridge kam nicht wieder hoch. Der Updater lädt jetzt **alle** Bridge-Module
(Hauptdatei + `_web_assets.py` + Client + Loader) erst vollständig herunter
und ersetzt sie dann atomar — und verweigert das Self-Update im Binary-Modus
(stattdessen neue Binary/neues Docker-Image laden).
> Falls du nach dem Update auf 0.9.12 hängengeblieben bist: einmalig das
> Docker-Image neu bauen/deployen oder die 0.9.13-Binary holen, danach
> funktioniert das Self-Update wieder.
## [0.9.12] 2026-05-20
### Fixes
- **Pause-Status** wird jetzt korrekt erkannt: Die Bridge las den Geräte-State
statt des verschachtelten Druckauftrags-States, dadurch wurde ein pausierter
Druck teils noch als „druckend" angezeigt. Layer/Fortschritt/Restzeit kommen
jetzt ebenfalls aus dem Auftrags-Report.
### Intern
- Frontend (HTML/CSS/JS) aus der Python-Datei nach `web/index.html` ausgelagert,
zur Build-Zeit wieder eingebettet — besser wartbar, für Nutzer keine Änderung.
### Doku
- Community-**Home-Assistant-Integration** von @gangoke verlinkt.
## [0.9.11] 2026-05-20
### Neu

View File

@@ -1,5 +1,35 @@
# Changelog
## [0.9.13] 2026-05-20
### Fixes
- **Self-update was broken for 0.9.12 (important):** the in-app updater only
replaced `kobrax_moonraker_bridge.py`, but since 0.9.12 that file imports the
extracted `_web_assets.py` (bundled frontend). Updating to 0.9.12 therefore
crashed with `ModuleNotFoundError: No module named '_web_assets'` and the
bridge wouldn't come back up. The updater now downloads **all** bridge modules
(main file + `_web_assets.py` + client + loaders), fully, then swaps them
atomically — and refuses to self-update in binary mode (use the new
binary/Docker image instead).
> If you got stuck on 0.9.12 after pressing update: rebuild/redeploy the Docker
> image or grab the 0.9.13 binary once, then self-update works again.
## [0.9.12] 2026-05-20
### Fixes
- **Pause state** is now read correctly: the bridge was looking at the device-level
state instead of the nested print-job state, so a paused print sometimes still
showed as printing. Layer/progress/remaining-time are now also taken from the
job report.
### Internal
- Frontend (HTML/CSS/JS) extracted from the Python file into `web/index.html`,
bundled back in at build time — easier to maintain, no change for users.
### Docs
- Linked the community **Home Assistant integration** by @gangoke.
## [0.9.11] 2026-05-20
### New

View File

@@ -6,6 +6,7 @@ COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY kobrax_moonraker_bridge.py .
COPY _web_assets.py .
COPY config_loader.py .
COPY env_loader.py .
COPY kobrax_client.py .

View File

@@ -16,6 +16,8 @@ Eine Moonraker-kompatible Bridge, die direkt mit dem Drucker spricht.
 
[![Releases](https://img.shields.io/badge/Download-Releases-2EA043?style=for-the-badge&logo=gitea&logoColor=white)](https://gitea.it-drui.de/viewit/KX-Bridge-Release/releases)
 
[![Downloads](https://img.shields.io/badge/Downloads-800%2B-8957E5?style=for-the-badge&logo=gitea&logoColor=white)](https://gitea.it-drui.de/viewit/KX-Bridge-Release/releases)
 
[![Video](https://img.shields.io/badge/YouTube-Tutorial-FF0000?style=for-the-badge&logo=youtube&logoColor=white)](https://www.youtube.com/watch?v=1Ql4wfH27fM)
<sub>Gefällt dir KX-Bridge? Ein Kaffee auf <a href="https://ko-fi.com/viewitde">Ko-fi</a> hält das Projekt am Leben. ☕</sub>
@@ -99,6 +101,17 @@ Drucker → Verbindungstyp **Moonraker** → Host: `http://BRIDGE-IP:7125`
---
## 🏠 Community & Integrationen
- **[Home-Assistant-Integration](https://github.com/gangoke/kobrax-lan-hass-component)**
von [@gangoke](https://github.com/gangoke) — bindet Sensoren, Drucksteuerung,
Licht, Kamera und das GCode-Vorschaubild als native Home-Assistant-Entitäten ein.
> Dies sind **Community-Projekte**, die nicht von KX-Bridge betreut oder
> supportet werden. Bei Fragen oder Problemen bitte das verlinkte Repository nutzen.
---
## 🔧 Zugangsdaten manuell ermitteln
Normalerweise nicht nötig — *„+ Drucker hinzufügen"* macht das automatisch. Falls doch:

View File

@@ -16,6 +16,8 @@ A Moonraker-compatible bridge that talks directly to the printer.
&nbsp;
[![Releases](https://img.shields.io/badge/Download-Releases-2EA043?style=for-the-badge&logo=gitea&logoColor=white)](https://gitea.it-drui.de/viewit/KX-Bridge-Release/releases)
&nbsp;
[![Downloads](https://img.shields.io/badge/Downloads-800%2B-8957E5?style=for-the-badge&logo=gitea&logoColor=white)](https://gitea.it-drui.de/viewit/KX-Bridge-Release/releases)
&nbsp;
[![Video](https://img.shields.io/badge/YouTube-Tutorial-FF0000?style=for-the-badge&logo=youtube&logoColor=white)](https://www.youtube.com/watch?v=1Ql4wfH27fM)
<sub>Like KX-Bridge? A coffee on <a href="https://ko-fi.com/viewitde">Ko-fi</a> keeps the project alive. ☕</sub>
@@ -99,6 +101,17 @@ Printer → Connection type **Moonraker** → Host: `http://BRIDGE-IP:7125`
---
## 🏠 Community & Integrations
- **[Home Assistant integration](https://github.com/gangoke/kobrax-lan-hass-component)**
by [@gangoke](https://github.com/gangoke) — exposes sensors, print controls,
light, camera and the GCode thumbnail as native Home Assistant entities.
> These are **community projects**, not maintained or supported by KX-Bridge.
> For questions or issues, please use the linked repository.
---
## 🔧 Getting credentials manually
Normally not needed — *"+ Add printer"* does this automatically. If you do need it:

View File

@@ -1 +1 @@
0.9.11
0.9.13

2991
_web_assets.py Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff