mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-09-30 19:21:33 +02:00
Follow-up to the #1322 root fix. Reporter @RosdasHH traced the raw MQTT payload and found that P1S and A1 Mini send only {"id": N} for a physically empty slot — no state, no tray_type, no other fields. Without that signal, the assign-spool path was firing one wasted MQTT publish per click on a truly-empty slot (firmware dropped it silently, but still). The AMS parser in printer_manager.py now detects the bare-tray shape and promotes it to state=9 — the firmware's explicit "no spool" code — which lets the existing state in {9, 10} short-circuit in the inventory route apply automatically. The detection is intentionally narrow: len(tray) == 1 and "id" in tray and state is None so the post-Reset-Slot A1 Mini BMCU case (populated payload with state=3 and tray_type="") has more than one key and stays unaffected — the #1322 root fix is preserved.