Eine Runde per Ein-Befehl -- und das gruene Licht log

docs/tp25-runde.sh startet Konsole und Messung zusammen, friert die AP-Karte
ein, sagt die vom Interface GELESENE Adresse fuers Telefon an und loest beim
Beenden den Pin. Grund: beide Einzelteile hatten als Standard-Laufverzeichnis
einen Pfad in ein Sitzungs-Scratchpad -- wer sie ohne die passende
Umgebungsvariable startete, mass in ein totes Verzeichnis und merkte es erst
bei der Auswertung.

Der Probelauf hat dabei sofort einen Fehler in der eigenen Anzeige aufgedeckt:
die Seite meldete "✅ beide angemeldet, auf verschiedenen APs", waehrend beide
Telefone auf ap2 hingen. Das Kriterium prueft "beide angemeldet" -- nicht, ob
sie auf VERSCHIEDENEN APs sitzen. Das ist ein gruenes Licht fuer einen
Messpunkt, den es nicht gibt: Piep, weitergehen, kein Gegen-AP gemessen.
Wieder dieselbe Klasse wie der 14-h-Ausfall -- Anzeige geprueft statt Wirkung.

Jetzt vier Zustaende, gegen sechs Faelle geprueft (inkl. "gleicher AP, anderes
Band" -> zaehlt NICHT):
  bereit           verschiedene APs        -> Piep, weitergehen
  wird nachgezogen gleicher AP, Automatik  -> warten
  kein Gegen-AP    gleicher AP, ohne Auto  -> Warnung statt gruen
  S22 sucht        S22 nicht angemeldet    -> stehenbleiben

teilprojekte.md: Passwort-Rotation als offener Follow-up eingetragen (User:
"machen wir, aber erst spaeter") -- inkl. der noch offenen sshpass -p in
tp6-monitor-core.sh und tp25-pin-s22.sh, die vorher nachgezogen gehoeren.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-22 20:49:13 +02:00
parent 4335287e96
commit 6aa24977da
3 changed files with 96 additions and 2 deletions

View File

@@ -417,7 +417,14 @@ def render(st):
# Drei Zustaende, nicht zwei. "S22 kommt nicht rein" ist ein ERGEBNIS (der Gegen-AP
# traegt hier nicht), kein Defekt -- es darf deshalb nicht wie ein Fehler aussehen und
# nicht ewig Alarm schlagen.
bereit = bool(frisch and ip_ap and s22_ap)
# 🔴 "beide angemeldet" ist NICHT das Kriterium -- der Messpunkt taugt nur, wenn die
# beiden Telefone auf VERSCHIEDENEN APs sitzen. Am 2026-08-22 meldete die Seite
# "✅ beide angemeldet, auf verschiedenen APs", waehrend beide auf ap2 hingen: ein
# gruenes Licht fuer eine Messung, die es gar nicht gab. Wieder derselbe Fehler --
# die Anzeige geprueft statt der Wirkung.
getrennt = bool(ip_ap and s22_ap and ip_ap != s22_ap)
bereit = bool(frisch and getrennt)
gleich = bool(frisch and ip_ap and s22_ap and ip_ap == s22_ap)
wartet = bool(frisch and ip_ap and not s22_ap and not _auto["aufgegeben"])
if wartet and _auto["seit_weg"] and time.time() - _auto["seit_weg"] > 45:
_auto["aufgegeben"] = ziel or "?"
@@ -438,7 +445,13 @@ def render(st):
pinstatus = ("🚫 S22 bekommt <b>%s</b> hier nicht — <b>das ist das Messergebnis</b>, "
"Raum markieren und weitergehen.<br>%s" % (_auto["aufgegeben"], doppel))
elif bereit:
pinstatus = "✅ beide angemeldet, auf verschiedenen APs<br>%s" % doppel
pinstatus = "✅ beide angemeldet, <b>verschiedene APs</b> — Messpunkt zählt<br>%s" % doppel
elif gleich and _auto["an"]:
pinstatus = ("⏳ beide auf <b>%s</b> — Gegen-AP wird gerade nachgezogen, "
"noch nicht weitergehen<br>%s" % (ip_ap, doppel))
elif gleich:
pinstatus = ("⚠️ beide auf <b>%s</b> — <b>kein Gegen-AP-Messpunkt.</b> "
"Automatik einschalten oder S22 von Hand pinnen.<br>%s" % (ip_ap, doppel))
elif wartet:
pinstatus = "⏳ S22 sucht <b>%s</b> …<br>%s" % (ziel or "?", doppel)
elif ziel in ("ap1", "ap2"):