Compare commits

..

15 Commits

Author SHA1 Message Date
787f3ef900 Merge branch 'master' into ACE2 2026-05-20 07:26:22 +02:00
Gangoke
d5e9ba9c33 removed duplicate config.ini.example 2026-05-19 15:20:17 -10:00
Gangoke
e4b2351fea Enhance ACE mode visibility logic in applyState function - fix ACE Dryer visability. Adds/Removes ACE Dryer(s) from UI when switching to/from an ace mode and toolhead mode. Add/Remove Dryer(s) when ACE count increases/decreases 2026-05-19 15:06:12 -10:00
gangoke
43e3d6516d Merge pull request 'Colors and Filament Sync' (#1) from gcode-color-fix into ACE2
Reviewed-on: https://gitea.gangoke.app/gangoke/KX-Bridge-Release/pulls/1
2026-05-19 12:46:43 +00:00
Gangoke
20787cfae2 better color selector defaults still needs every situation testing 2026-05-19 02:38:21 -10:00
Gangoke
cb05bc3699 Hungry Hare adjustments, dont sync empty slots with placeholder 2026-05-19 02:18:20 -10:00
Gangoke
dee3858533 first working mapped color print 2026-05-18 23:43:27 -10:00
Gangoke
d21c7c408c maybe uneeded, might have found root issue 2026-05-17 23:32:15 -10:00
Gangoke
70b70b1d98 ACE Auto Refill toggle feature 2026-05-17 22:36:42 -10:00
Gangoke
8c4bff6b86 ACE2 Drying Card v2, Dryer Presets, 2026-05-17 22:14:51 -10:00
Gangoke
a3dbe9a0e8 ACE drying card v1 2026-05-17 19:15:47 -10:00
Gangoke
24ccf96f5c current temp and humidity working 2026-05-17 18:56:35 -10:00
Gangoke
aea115faa0 ace dryer, start, stop, temp set/current, time set/remaning, status, humidity monitor. groundwork 2026-05-17 18:46:56 -10:00
Gangoke
c6cc4ac446 feat: update AMS section UI and functionality for slot editing 2026-05-17 18:08:09 -10:00
Gangoke
e28a91b64d feat: ACE support, filament section visual tweaks 2026-05-17 17:39:46 -10:00
12 changed files with 3019 additions and 3163 deletions

2
.gitignore vendored
View File

@@ -7,3 +7,5 @@ dist/
releases/*/kx-bridge
releases/*/extract_credentials
releases/*/extract_credentials.exe
config/config.ini
data

View File

@@ -1,38 +1,5 @@
# Changelog
## [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
- **ACE Pro 2 Support (experimentell, Community-Beitrag von @gangoke, PR #26):** Die Bridge erkennt jetzt die Filament-Hardware automatisch und passt sich an:
- **Modi:** `toolhead` (kein ACE, Standard-4-Slot-Box), `ace_direct` (ein ACE Pro 2 direkt am Toolhead), `ace_hub` (bis zu 4 ACE-Units am Slot-4-Hub) — insgesamt bis zu **19 Slots**.
- **AMS Auto-Refill** Umschalter.
- **Trockner:** Temperatur-/Luftfeuchte-Monitor, Start/Stop/Temp/Dauer-Steuerung, mit Material-Presets in einer neuen Config-Sektion `[ace_dry_presets]` (PLA, PLA+, PETG, TPU, ABS/ASA, PA/PC + 3 Custom).
- **UI:** Filament-Sektion skaliert auf 19 Slots, Modus-Label, geladener Slot grün umrandet mit Lade-/Entlade-Puls-Animation, Unload/Load direkt aus dem Slot-Edit-Dialog.
- **GCode-Farb-Mapping:** ACE2-fähig, Farbe-aus-GCode-Fix, Hinweis bei Inkonsistenz zwischen Mapping und Objekten, besseres Default-Mapping.
> **⚠️ Experimentell:** Die ACE-Pro-2-Hardware-Pfade wurden vom Contributor mit einer einzelnen ACE2-Unit entwickelt und getestet; die 24-Unit-Hub-Konfigurationen sind theoretisch und auf echter Hardware ungetestet. Wir haben hier ebenfalls keine ACE2-Hardware zur Verifikation. Der Standard-`toolhead`-Pfad (ohne ACE) wurde live gegen einen echten Kobra X getestet. Wer ein Multi-ACE-Setup betreibt: bitte per Issue Rückmeldung geben.
### Fixes
- **Happy-Hare-MMU-Emulation:** Es werden nur belegte Slots gesynct — kein Placeholder für leere Slots (kompatibel mit OrcaSlicer PR #13372).
- **GCode-Farb-Dialog** zeigt nach einem neuen Upload nicht mehr die Daten der vorherigen Datei.
---
## [0.9.10] 2026-05-17
> **Hinweis:** Mit diesem Release wird der Fokus von neuen Features auf

View File

@@ -1,38 +1,5 @@
# Changelog
## [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
- **ACE Pro 2 support (experimental, community contribution by @gangoke, PR #26):** the bridge now auto-detects the filament hardware and adapts:
- **Modes:** `toolhead` (no ACE, stock 4-slot box), `ace_direct` (one ACE Pro 2 directly on the toolhead), `ace_hub` (up to 4 ACE units on the slot-4 hub) — up to **19 slots** total.
- **AMS auto-refill** toggle.
- **Dryer:** temperature/humidity monitor, start/stop/temp/duration control, with material presets configurable in a new `[ace_dry_presets]` config section (PLA, PLA+, PETG, TPU, ABS/ASA, PA/PC + 3 custom).
- **UI:** filament section scales to 19 slots, mode label, loaded slot is green-outlined with a load/unload pulse animation, unload/load straight from the slot-edit dialog.
- **GCode color mapping:** ACE2-aware, color-from-GCode fix, inconsistency notifier when the mapping doesn't match the objects, better default mapping.
> **⚠️ Experimental:** the ACE Pro 2 hardware paths were developed and tested by the contributor with a single ACE2 unit; the 24 unit hub configurations are theoretical and untested on real hardware. We don't have ACE2 hardware to verify against either. The standard `toolhead` (no-ACE) path was verified live against a real Kobra X here. If you run a multi-ACE setup, please report back via Issues.
### Fixes
- **Happy Hare MMU emulation:** only populated slots are now synced — no placeholder for empty slots (aligns with OrcaSlicer PR #13372).
- **GCode color dialog** no longer shows the previously-uploaded file's data after a new upload.
---
## [0.9.10] 2026-05-17
> **Heads-up:** with this release the focus shifts from new features to

View File

@@ -6,7 +6,6 @@ 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,8 +16,6 @@ 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>
@@ -101,17 +99,6 @@ 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,8 +16,6 @@ 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>
@@ -101,17 +99,6 @@ 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.12
0.9.10

File diff suppressed because it is too large Load Diff

View File

@@ -1,34 +0,0 @@
# KX-Bridge Konfigurationsdatei
# Kopiere diese Datei nach config.ini und trage deine Werte ein:
# cp config.ini.example config.ini
#
# Credentials mit extract_credentials.exe (Windows) oder
# extract_credentials (Linux) aus dem laufenden AnycubicSlicerNext auslesen.
[connection]
# IP-Adresse des Druckers im lokalen Netzwerk
printer_ip = 192.168.x.x
# MQTT-Port (Anycubic Kobra X Standard: 9883)
mqtt_port = 9883
# MQTT-Zugangsdaten (druckerspezifisch, beginnt mit "user")
username = userXXXXXXXXXX
password = XXXXXXXXXXXXXXX
# Geräte-ID (32-stelliger Hex-String, druckerspezifisch)
device_id = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Modell-ID (Kobra X Standard: 20030)
mode_id = 20030
[print]
# Standard-AMS-Slot für Einfarbdruck (auto = alle belegten Slots, 0-3 = fixer Slot)
default_ams_slot = auto
# Auto-Leveling vor jedem Druck (1 = an, 0 = aus)
auto_leveling = 1
[bridge]
# Poll-Intervall in Sekunden
poll_interval = 3

View File

@@ -34,3 +34,29 @@ auto_leveling = 1
[bridge]
# Poll-Intervall in Sekunden
poll_interval = 3
[ace_dry_presets]
# Vordefinierte Dry-Set Presets (Temp in °C, Dauer in Sekunden)
pla_temp = 45
pla_duration_sec = 14400
pla_plus_temp = 45
pla_plus_duration_sec = 14400
petg_temp = 50
petg_duration_sec = 14400
tpu_temp = 55
tpu_duration_sec = 14400
abs_asa_temp = 45
abs_asa_duration_sec = 28800
pa_pc_temp = 55
pa_pc_duration_sec = 43200
# Custom Presets (Name + Temp + Dauer)
custom_1_name = Custom 1
custom_1_temp = 45
custom_1_duration_sec = 14400
custom_2_name = Custom 2
custom_2_temp = 45
custom_2_duration_sec = 14400
custom_3_name = Custom 3
custom_3_temp = 45
custom_3_duration_sec = 14400

View File

@@ -14,13 +14,6 @@ Verwendung:
info = client.query_info()
print(info["data"]["temp"])
client.disconnect()
────────────────────────────────────────────────────────────────────────────
Copyright (C) 2026 viewit (KX-Bridge contributors)
Licensed under GPLv3 — see LICENSE in the project root.
Protocol reverse-engineered for interoperability (§69e UrhG / EU Software
Directive Art. 6). Not affiliated with Anycubic. See NOTICE.md.
"""
import hashlib

File diff suppressed because it is too large Load Diff