Slice-Watch mit Ordnern/Filtern, Orca-Nachbearbeitung, Cockpit-Verlauf mit ED, Zeitzone im Browser. Tasten-Grenze und README-API angeglichen, toter Code entfernt, Requirements gepinnt.
1.7 KiB
Druckbericht und Statistik
Stand 17.10.2026.
Tabellen
runs: zusätzlichweight_planned_g,weight_used_g,weight_source,filament_used_mm/filament_total_mm,progress_last,estimated_s,chargen_nr,message,objectsrun_spools: Abzug je Spule (is_estimatebei Mehrfarb)run_segments: Abschnitte bei Rollenwechsel (Einlegen während Druck/Pause)run_samples: Temperatur/Soll/ED (nozzle_power/bed_power) — alle ~30 s, beim Aufheizen ~10 s; Proben schon vorprinting, wenn Targets gesetzt und Auftrag/Live-Lauf bekanntrun_labels: Objekt-ChargenD-…-01events.run_id: optionaler Bezug zum Lauf
Abzug
grotti/usage.py rechnet Ist-Gramm aus filament_used / filament_total × Soll. Abbruch ohne Extrusion: 0. Ohne Zähler: Fortschritt × Soll (Schätzwert). Fertig ohne Messgröße: Soll bleibt, Quelle estimate.
apply_deduction schreibt zuerst run_spools, dann deducted/remaining_g (auch unter 0); ensure_run_chargen oft schon während des Laufs. Ohne run_spools bleibt die Spulenakte leer.
Live
StateWatcher hängt am offenen History-Job oder legt live:… an, schreibt Proben, vergibt chargen_nr, merkt Objektnamen. Vor neuem Start: abandon_live_runs. sync_history übernimmt Proben/Segmente (adopt_live_run, nicht auf ältere fertige Jobs derselben Datei). Die Live-Charge geht nur auf einen fertigen Lauf ohne Nummer über; Objekt-Etiketten nur zusammen mit dieser Charge. Sonst werden sie neu vergeben, statt eine fremde D-…-01 zu blockieren.
Statistik-Filter
since inklusiv, reines until als Datum (YYYY-MM-DD) inklusiv (intern Folgetag exklusiv). Presets in der UI setzen Von/Bis. CSV nutzt dieselben Query-Parameter.