Die Konsole (docs/tp6-marker/server.py) war beim Multi-Pin-Umbau nicht mitgezogen worden: hartkodiert auf 2 Clients, pinnte ueber die alte Gegen-AP-Automatik. Jetzt: - Client-Liste aus geraete.txt (schreibt tp25-walk-messung.sh), Fallback auf die zwei alten MACs fuer Alt-Laeufe. - Kein eigenes SSH mehr: je Client letzte Zeile von sampler-<name>.csv (AP/Signal) + Ping-Verlust aus walk-ping-<name>.csv. - N Client-Karten; Alarm, wenn ein gepinnter Client nirgends haengt. - Pin-UI: je Client AP/Band waehlen, set/off/verify via tp25-pin-multi.sh (POST /pinmulti). Alte 2-Client-Automatik (entscheide/pin_setzen/auto) entfernt; tp25-pin-s22.sh liefert nur noch die map. - tp25-runde.sh loest beim Aufraeumen den Multi-Pin statt des S22-Pins. Doku: Ist-Stand-Block + Quick-Index + Messwerkzeug-Bullets nachgezogen, neuer Handoff 2026-09-04. Co-Authored-By: Claude Code <noreply@anthropic.com>
4.2 KiB
Handoff 2026-09-04 — TP25: Klick-Konsole auf N Clients + Pin-UI
Kurz: Die Klick-Konsole (docs/tp6-marker/server.py, Port 3031) war beim Multi-Pin-Umbau
(2026-09-04, tp25-pin-multi.sh + TP25_PHONES) nicht mitgezogen worden — sie zeigte weiter
hartkodiert zwei Clients (iPhone/S22) und pinnte ueber die alte Gegen-AP-Automatik. Jetzt ist sie
auf N Clients generalisiert und hat eine Pin-UI: Signal/AP/Ping-Verlust je Client live,
Pinnen band-genau direkt in der Konsole. Die alte 2-Client-Automatik ist entfernt.
Was umgebaut wurde
docs/tp6-marker/server.py (Hauptumbau):
- Client-Liste aus Datei statt hartkodiert:
geraete()liestgeraete.txtaus dem Laufverzeichnis (schreibttp25-walk-messung.sh, eine Zeilename|ip|macje Client). Fallback auf die zwei alten MACs fuer Alt-Laeufe. - Kein eigenes SSH mehr in der Konsole: der
beobachter()-Thread (2 MACs per SSH,beide-telefone.csv) ist raus. Stattdessen liest die Konsole je Client die letzte Zeile vonsampler-<name>.csv(sta_iface,sta_signal) und den juengsten Ping-Verlust auswalk-ping-<name>.csv(leeresms= Verlust). Eine SSH-Session weniger gegen den Core-SPOF. - N Client-Karten statt der festen iPhone/S22-Zeile: Name, AP (via
ap_map()), Signal dBm, Ping-Verlust der letzten ~30 s. Alarm, wenn ein gepinnter Clientsta_iface == "absent"ist → „ HAENGT NIRGENDS — nicht weitergehen" (Nachfolger des alten S22-Alarms). - Pin-UI (Karte „Pinnen (Multi-Pin)"): je Client ein
<select>mitfrei/apX/5GHz/apX/2,4GHz(Ziele ausap_map()abgeleitet) plus drei Aktionen:- „Pin setzen" → baut
TP25_PINSPEC="name|mac|ap|band;…"aus den Nicht-frei-Auswahlen und ruftbash docs/tp25-pin-multi.sh setim Thread. - „Pin loesen" →
bash docs/tp25-pin-multi.sh off. - „verify" →
bash docs/tp25-pin-multi.sh verify, Ausgabe als Statuszeile. Neuer EndpunktPOST /pinmulti(analog zum alten/pin).
- „Pin setzen" → baut
- Entfernt:
IPHONE_MAC/S22_MAC,_live/_auto,entscheide(),pin_lesen()/pin_setzen()(viatp25-pin-s22.sh), die ap1/ap2/auto-Buttons und derPIN_SH-Aufruf.tp25-pin-s22.shbleibt als Skript erhalten (liefertmap), wird aber von der Konsole nicht mehr zum Pinnen aufgerufen.
docs/tp25-runde.sh:
aufraeumen()loest jetzttp25-pin-multi.sh offstatttp25-pin-s22.sh off(Kommentar angepasst: die Konsole pinnt nicht mehr automatisch).
Bedienung (Messablauf)
bash docs/tp25-runde.sh [name] # Konsole (3031) + Messung, Adresse fuer das Telefon
- Am Telefon die Konsole oeffnen, einmal irgendwo tippen (schaltet den Signalton frei).
- In der Konsole pinnen: je Client AP/Band waehlen, „Pin setzen". Clients ohne Ziel bleiben
frei (das Skript raeumt vorher alle
TP25-PINM-*-Regeln ab). - Losgehen. 🚶 beim Losgehen, 📍 beim Stehenbleiben, Raum antippen. Alarm = ein gepinnter Client haengt nirgends.
- „⏹ Aufzeichnung stoppen" (oder Ctrl-C im Terminal). Der Wrapper loest den Multi-Pin beim Beenden.
Auswertung: python3 docs/tp25-gehweg-auswertung.py --dir docs/messdaten/tp25-runde-<name>
Was noch offen ist (braucht die Geraete vor Ort)
- Live-Test mit N Geraeten im Netz (Plan-Verifikation Schritt 3):
TP25_PHONES="…" bash docs/tp25-runde.sh test→ N Karten sichtbar, pinnen →bash docs/tp25-pin-multi.sh verifyzeigt die Regeln, gehen/Raeume/stoppen → Auswertung liefert die Raumtabelle mit N Geraeten. - Aufraeumen (Schritt 4): nach dem Lauf
bash docs/tp25-pin-multi.sh off— keineTP25-PINM-*-Regeln am Manager zurueck.
Statisch verifiziert (ohne Geraete): AST-Parse ok, keine stale Referenzen auf die alte Automatik,
Smoke-Render mit 2 Test-Clients ok, bash -n auf allen drei Shell-Skripten ok.
Gotchas (unveraendert, aus CLAUDE.md)
cap-wifiN-Karte wandert bei jedem Rejoin —tp25-walk-messung.shfriert sie alsap-map.txtim Messlauf ein; die Konsole beschriftet daraus.- Registration-Table nur am Manager — die Sampler (
tp6-monitor-core.sh) fragen den Core ab, nicht die CAPs. sshpass -e, nie-p— gilt weiter fuer alle Skripte, die den Core ansprechen.