Update CHANGELOG and documentation for Task Hygiene improvements; enhance error handling in anycubic_lan.py; add Anycubic task display in wand.html.

This commit is contained in:
Dominic Gundel committed 2026-10-15 09:25:13 +02:00
1 parent ead7e5718e
commit b20f8a7779
8 files changed
+467 -67

No files matched your search

+30 -10
View File
@@ -246,21 +246,29 @@ def start_print(host, filename, bed_leveling=False, ams_settings=None):
MQTT selbst (auto_leveling aus App-Property; ams_settings aus .acm /
Identity-Fallback). Bei bed_leveling oder gesetzter Grotti-ams_settings
startet Grotti per MQTTS :9883 und legt die Map explizit in die Payload.
Vor dem reinen Moonraker-Pfad: best-effort ensure_task_free — Rinkhals
wandelt Start oft intern zu MQTT um; hängende gkapi-Tasks (10101) blocken.
"""
use_mqtt = bool(bed_leveling) or bool(ams_settings)
if not use_mqtt:
return post_json(host, "/printer/print/start", {"filename": filename})
from grotti import anycubic_lan
if use_mqtt:
try:
return anycubic_lan.start_print(
host,
filename,
auto_leveling=bool(bed_leveling),
ams_settings=ams_settings,
)
except anycubic_lan.LanError as exc:
raise PrinterError(exc.message) from exc
try:
return anycubic_lan.start_print(
host,
filename,
auto_leveling=bool(bed_leveling),
ams_settings=ams_settings,
)
except anycubic_lan.LanError as exc:
raise PrinterError(exc.message) from exc
anycubic_lan.ensure_task_free(host)
except Exception:
pass
return post_json(host, "/printer/print/start", {"filename": filename})
def command(host, action):
@@ -908,9 +916,20 @@ def query(host):
"extrude_factor": extrude_factor,
"slots": slots(host, status),
"exclude": exclude_status(host),
"anycubic_task": _anycubic_task_field(host),
}
def _anycubic_task_field(host):
"""gkapi-Task aus print_info (TTL-Cache in anycubic_lan), best-effort."""
try:
from grotti import anycubic_lan
return anycubic_lan.anycubic_task(host)
except Exception:
return None
def snapshot(printers):
def one(printer):
card = {
@@ -935,6 +954,7 @@ def snapshot(printers):
"speed_factor": None,
"extrude_factor": None,
"slots": [],
"anycubic_task": None,
})
card.update(mesh_fields(printer["host"]))
return card