Drei Aenderungen aus Herbs Feedback:
1. Markus -> Herr Rechmann (60 Treffer in 26 Dateien + DB-Lektionen L2/L3)
Konvention: Herb bleibt 'Herb' (interne Anrede fuer Claude), Markus
wird in SuS-sichtbaren Texten als 'Herr Rechmann' ausgeschrieben.
Wo 'Herb und Markus' stand -> 'Herb und Herr Rechmann'. Wenn das
stilistisch zu uneinheitlich wirkt, koennen wir Herb spaeter auch
in SuS-Texten zu 'Herr Puettmann' umziehen.
2. L3-Titel: 'Customizer — parametrisches 3D-Modell anpassen'
-> 'Mein eigenes 3D-Modell designen'
Begruendung Herb: 'Customizer' + 'parametrisch' wirken abschreckend.
Methode kommt in den Aufgabe-Text, nicht in den Titel.
3. L2-Inhalt komplett geschrieben (~4.8 KB):
- 8-Schritte-Workflow vom Stoebern auf Printables bis zum
Druck-Abholen
- A1-mini-Spezifika klar markiert (offen → nur PLA, 18×18 cm)
- P-Serie-Spezifika fuer groessere Drucke
- Tipps zur Modell-Wahl (klein anfangen, 4+ Sterne)
- Was-tun-wenn-Tabelle bei Druckproblemen
- Lehrer-Eskalations-Pfad: pausieren via Handy-App + Lehrer rufen
Quellenlage: PDF-Anleitung A1 mini im OneDrive + Bambu-Wiki online
waren beide nicht maschinell zugaenglich (pdftoppm fehlt, Wiki
gibt HTTP 402). Workflow basiert auf Standard-Bambu-Studio-Bedienung
+ Konsistenz mit der L1-P2S-Beschreibung. Herb/Herr Rechmann pruefen
die A1-mini-Spezifika beim Lehrer-Test und korrigieren via Inline-Edit
(oder per Migration, wenn Inline-Edit-UI noch nicht live ist).
2.9 KiB
2.9 KiB
type, projekt, stand, tags
| type | projekt | stand | tags | ||
|---|---|---|---|---|---|
| konzept-modul | 3d.lehrstun.de | 2026-05-23 |
|
Architektur
Komponentensicht der 3D-Druck-AG-Plattform. Detail-Schema siehe datenmodell, Bambu-Anbindung siehe druckerapi, Reservierungen siehe slotsystem.
1. Komponenten
flowchart LR
subgraph Browser["Browser"]
SUS[SuS-Cockpit]
LEHRER[Lehrer-Dashboard]
OEFF[Öffentliche Seiten]
end
subgraph Server["Hetzner: 3d.lehrstun.de:5057"]
FL[Flask-App]
DB[(SQLite)]
POLL[Drucker-Poll-Worker<br/>alle ~30 s]
FL --- DB
POLL --- DB
end
subgraph Schule["Schule"]
BS_PC[Bambu Studio<br/>auf Schul-PCs]
DRU[4 Bambu-Drucker]
BS_PC -.WLAN.-> DRU
end
subgraph Cloud["Bambu Cloud"]
BAMBU[api.bambulab.com<br/>+ MQTT]
end
Browser -->|HTTPS| FL
POLL -->|HTTPS| BAMBU
DRU -->|MQTT| BAMBU
BS_PC -->|HTTPS| BAMBU
2. Datenfluss bei einem Druckauftrag
sequenceDiagram
actor SuS
participant Site as 3d.lehrstun.de
participant DB as SQLite
participant Studio as Bambu Studio
participant Drucker
participant Cloud as Bambu Cloud
SuS->>Site: Druckauftrag eintragen (Titel, Dauer, Material)
Site->>DB: druckauftrag (status=geplant)
SuS->>Site: Slot reservieren (Drucker X, 14:00-16:00)
Site->>DB: slot (status=reserviert)
Note over SuS,Studio: SuS slict ausserhalb der Site
SuS->>Studio: Modell slicen
Studio->>Cloud: Job hochladen
Cloud->>Drucker: Job starten
Drucker->>Cloud: Status (printing, ETA, ...)
loop alle 30 s
Site->>Cloud: GET Status aller Drucker
Cloud-->>Site: JSON
Site->>DB: drucker_status aktualisieren
end
SuS->>Site: Cockpit aufrufen
Site-->>SuS: "Dein Job auf Drucker X läuft, noch 1h 20m"
Drucker->>Cloud: Status (finished)
Site->>Cloud: GET (im nächsten Poll)
Site->>DB: druckauftrag.status = fertig
SuS->>Site: "Abgeholt" klicken
Site->>DB: druckauftrag.status = abgeholt
3. Fehlerfälle
flowchart TB
A[Drucker meldet 'failed' an Cloud] --> B{Poll erkennt es}
B --> C[drucker_status.status = failed]
C --> D[Dashboard zeigt rote Markierung]
D --> E{Aktive Slots betroffen?}
E -- ja --> F[Vorschlag: Slot auf anderen Drucker verschieben]
E -- nein --> G[Nur Drucker als 'Wartung nötig' markieren]
F --> H[Herb/Herr Rechmann klickt 'Verschieben']
H --> I[Slot.drucker_id neu, Notiz im SuS-Cockpit]
J[Cloud-API antwortet nicht] --> K{Letzter Poll-Erfolg > 5 Min her?}
K -- ja --> L[UI: 'Status veraltet']
L --> M[Admin: Button 'Manueller Status']
K -- nein --> N[Normal weiter]
4. Querverweise
- Detail-Tabellen: datenmodell
- Welche Routes welche Komponenten füttern: routen
- Wie das Polling konkret läuft: druckerapi
- Wie Slots verteilt werden: slotsystem
- Welche Etappe was baut: etappen