User-Entscheid: TP30 sammelt jedes Credential, das neu gesetzt werden
muss -- nicht nur Rotationen. Das Shelly-Geraetepasswort (TP17.2) ist
eine Erstvergabe und gehoert damit dorthin; ausserdem teilt es sich mit
der PSK-Rotation den Geraete-Durchgang (ein Reboot statt zwei).
- TP17.2-Volltext nach TP30 verschoben (Posten #3), Stub bleibt als
Wegweiser, damit die Nummer nicht ins Leere zeigt
- TP30-Titel/Scope geweitet: "neu setzen & rotieren", mit expliziter
Trennung Erstvergabe vs. Rotation (Prioritaet unterschiedlich,
Arbeitsaufwand identisch)
- Detailabschnitte symmetrisch als "Posten #1" / "Posten #3" benannt
- Querverweise nachgezogen: Naechster-Schritt-Block, Split-Regel,
TP17.3-Abgrenzung, Archiv-Kopfzeile TP17
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Ergebnis der read-only-Recherche-Session, hier gegengeprueft und in die kanonische
Doku uebernommen.
Der PSK in docs/teilprojekte-archiv.md (TP17) ist NOCH der live konfigurierte --
verifiziert am Manager per Fingerprint (Laenge + drei Zeichenpaare) statt im
Klartext, damit der Wert nicht ein zweites Mal in einem Transkript landet. Das ist
zugleich die Merkregel: Uebereinstimmung prueft man mit Stichproben, nicht durch
Ausgeben.
User-Entscheid: Historie belassen, im Nachtrag dokumentieren -- kein filter-repo.
Traegt, weil es genau eine getrackte Fundstelle gibt, drei Commits, Remote nur
gitea.emsenhuber.net und einen einzigen lokalen Klon; der Wert hat die eigene
Infrastruktur nie verlassen. Der wirksame Schritt ist die Rotation, und die bleibt
hinter TP17.1.
Blast radius selbst nachgemessen (crs326-core, read-only), Peer-Zahlen bestaetigt:
26 der 27 WLAN-Clients des gesamten Netzes haengen auf dirtyvader-iot (main 1,
media/untrusted/guest je 0), VLAN30 fuehrt 41 Leases/Reservierungen (5 bound).
Neben den ~26 Shellys: P750W, Airfryer, SwitchBot, Twinkly, DTUBI, SONOFF-NSPanelPro,
ein iPhone.
Damit praezisiert sich TP17.1: nach zehn migrierten Gen4 blieben grob 16 Geraete
auf dem IoT-SSID, nicht 12 -- der Funkruhe-Effekt ist real (-38 % Clients), der
PSK-Effekt nur halb. Die Reihenfolge-Entscheidung bleibt richtig, ihre Begruendung
wird ehrlicher.
Zwei Umsetzungshinweise fuers spaetere Rotations-Paket festgehalten: migrate.py hat
kein Rotate-Kommando, und ein Flag-Day ist vermeidbar ueber Passphrase-Overrides je
MAC in /interface wifi access-list -- was dem TP25-Befund "keine access-list"
nebenbei einen Zweck gibt.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
User-Entscheid 2026-08-23: das IoT-WLAN-Passwort bleibt vorerst wie es ist.
Stattdessen zuerst die Shelly Gen4 auf Matter over Thread umstellen; danach
haengen deutlich weniger Geraete am WLAN und die Rotation wird billig. Damit ist
die Rotation NACHFOLGER von TP17.1, nicht mehr eigenstaendiger Follow-up.
TP17.1 stand seit 2026-07-11 als Projektion im (inzwischen archivierten) TP17.
Es hat jetzt wieder offene Arbeit und steht deshalb nach der eigenen Split-Regel
wieder vorne in teilprojekte.md. Umsetzung liegt im HA-Projekt:
~/dev/ha-xstate/docs/shelly-gen4-thread-migration.md
Bestand live gesweept (mcp/shelly/discover.py, read-only, VLAN30): 22 von 26
erreichbar -- 12 Gen4, 8 Gen3, 2 Gen2, alle fw 2.0.0. Nicht erreichbar: s1/s2/s3
(saisonal) und s4 kueche_mikrowelle (RSSI -93).
Recherchiert und als Praemissen-Korrektur eingetragen: Shelly unterstuetzt Matter
over Thread OFFIZIELL NICHT und plant es nicht -- Gen4 kann offiziell nur Matter
over WiFi, was hier nutzlos waere (Geraet bliebe im WLAN, braeuchte den PSK
weiter). Thread nur ueber Dritt-Firmware; das brauchbare Projekt deckt 10 der 12
Geraete ab (Plug S Gen4 faellt raus), kostet Garantie + Shelly-Cloud und hat als
Rueckweg nur ein UART-Vollbackup je Geraet. Selbst bei vollem Erfolg blieben 12
Geraete im WLAN -- Gen3 hat kein 802.15.4 und kann nie folgen.
Nebeneffekt fuer TP12.1: je mehr Thread-Geraete kommen, desto oefter zahlt man
den -infra-SSID-Umweg beim Commissioning. Das ist das erste Argument fuer TP12.1,
das nicht an einem einzelnen Fuehler haengt.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Getrennt nach ZUSTAND, nicht nach TP (der Vorschlag "1 MD pro Teilprojekt"
haette ~35 Dateien ergeben und genau die Querbezuege zerschnitten, die das
Dokument wertvoll machen -- Reihenfolge, Abhaengigkeiten, "TP23 haengt an TP5
in beide Richtungen"):
- docs/teilprojekte.md = Rahmen + kritischer Pfad + 16 OFFENE TPs
- docs/teilprojekte-archiv.md = 34 abgeschlossene TPs, Volltext + Inhaltsverzeichnis
Zuordnungsregel steht in beiden Dateien und in CLAUDE.md: ein TP wandert erst
dann ins Archiv, wenn nichts mehr daran zu tun ist. Wo nur ein Sub-TP offen
war, blieb dieses vorne (TP17.2 <-> TP17, TP20.1 <-> TP20).
TP25 von 393 auf ~100 Zeilen kondensiert: Stand, Offenes (Fund F, die
20-MHz-Entscheidung) und die Merkregeln bleiben vorne, die Langfassung liegt
unveraendert im Archiv (#tp25-lang) -- ein guter Teil ihres Werts steckt in den
widerlegten Erklaerungen, die zeigen, welche Wege schon abgelaufen sind.
Kein Inhalt verloren: maschinell gegengeprueft, von 2218 Originalzeilen tauchen
alle wieder auf bis auf 7 bewusste Korrekturen.
Drift, der beim Aufraeumen aufgefallen ist (dieselbe Klasse wie die 08-18-Lehre,
dass der Ist-Stand-Block zuletzt nachgezogen wird):
- Compliance im Ist-Stand war einen Tag alt: 100/100 bei 25 Rules -> live gegen
die Nautobot-API geprueft 104/104 bei 26 Rules, 0 Drifts
- VLAN-Tabelle trug immer noch "Public-IP an ap1" -> crs326-core (Rest aus
Punkt C, den vier Durchgaenge uebersehen haben, weil er in einer Tabellenzelle
steckt und nicht in einem TP-Absatz)
- die DOCSIS-Erklaerung aus dem TP6-Abschluss stand im kritischen Pfad noch als
Begruendung, obwohl TP6.1 sie am selben Tag widerlegt hat -> datierter Nachtrag
Live gegengeprueft statt abgeschrieben: crs326-branch traegt keine
192.168.88.x-Adresse mehr, damit ist der letzte offene Aufraeum-Punkt aus TP21.1
geschlossen und das TP durfte ins Archiv.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>