# noahROBOT Fehlerbehebung

Alle Schritte beginnen ohne angeschlossene Motorversorgung. Keine Diagnose
darf einen Fahrbefehl, Firmware-Flash oder seriellen Schreibzugriff ausloesen.

## Windows-Mini-PC nicht per SSH erreichbar

Lokal am PELADN IP-Adresse, privates Netzwerkprofil und Dienst `sshd` pruefen.
Vom Mac `ping`, `nc -vz ... 22` und einen SSH-Login mit kurzem Timeout nutzen.
Keine Firewall- oder Passwortpolicy aus der Ferne auf Verdacht aendern. Die IP
`192.168.60.220` ist erst nach lokaler Inventur bestaetigt.

Aktueller Befund 2026-07-15: TCP 22 und SSH-Keyscan lieferten keine Antwort;
ARP fuer `192.168.60.220` blieb `incomplete`. Das ist ein Offline-/Sleep-/WLAN-
Zustand des Zielgeraets, kein Pingkriterium. PELADN lokal einschalten, Windows
anmelden und am bestehenden WLAN lassen; danach zuerst `hostname`, Hostkey und
TCP 22 erneut pruefen. Keine Subnetzsuche und kein blindes Hostkey-Akzeptieren.

## Ein Windows-Dienst startet nicht

```powershell
.\scripts\windows\status.ps1
.\scripts\windows\diagnose.ps1
.\scripts\windows\export-diagnostics.ps1
```

WinSW-Logs, Eventlog-Auszug, Portbelegung, Release-Junction und restriktive
Konfiguration pruefen. Nach drei Fehlern nicht in einer Endlosschleife starten;
auf `previous` rueckfallen. Diagnosearchive vor Weitergabe auf Namen, Tokens,
PINs und Netzwerkgeheimnisse pruefen.

## `/healthz` funktioniert, `/readyz` nicht

Readiness verlangt aktive Simulation und ein geschlossenes Hardware-Gate.
Pruefen:

```json
{"mode":"simulation","serial":{"enabled":false},"realMotorControlEnabled":false}
```

Fehlende lokale Hardware-Nachweise sind kein Konfigurationsfehler, sondern ein
beabsichtigtes Gate. Nicht durch Platzhalterwerte umgehen.

## `noah-robot.local` wird nicht gefunden

Zuerst `https://<private-ip>/robot/` testen. Dienst `noah-robot-mdns`, private
Firewallregel UDP 5353 und Client-WLAN pruefen. Manche Gastnetze blockieren
Multicast. Keine oeffentliche DNS- oder Routerfreigabe anlegen.

## HTTPS-Zertifikatswarnung

CA-Zertifikat nur mit `export-root-ca.ps1` exportieren. SHA-256-Fingerprint auf
dem PELADN und Endgeraet ueber getrennten Kanal vergleichen. Nur die
oeffentliche CA installieren; ein privater CA-Key darf den PELADN nie verlassen.
Nach Import Browser vollstaendig beenden und neu starten.

## PWA ist veraltet oder offline fehlerhaft

Version in Einstellungen pruefen, Tab schliessen, Netzverbindung herstellen
und `/robot/` neu laden. Der Service Worker nutzt versionierte Caches. Keine
API-, Pairing-, Auth-, Audio- oder Videodaten sollten im Cache erscheinen. Bei
Upgrade-Problemen Site-Daten fuer die lokale Robot-URL loeschen und neu pairen.

## Mikrofon oder Kamera funktioniert nicht

HTTPS, Browserberechtigung und sichtbaren UI-Status pruefen. Die PWA fragt
Mikrofon nicht ungefragt beim Laden ab und beendet Medien bei Hintergrund,
Seitenwechsel oder Gatewayverlust. Keine Berechtigung global erzwingen.

## Smartphone und iPad koennen nicht pairen

Beide Geraete muessen dasselbe private Robotnetz und die gleiche vertrauenswuerdige
CA verwenden. QR/PIN neu erzeugen; nie PIN oder Token in Logs kopieren. Rollen
pruefen: Kopfgeraet darf keine Fahrt starten, Controller besitzt nur eine
zeitlich begrenzte Lease.

## Arduino CLI oder AVR-Core fehlt

Bootstrap in Admin-PowerShell erneut als Trockenlauf pruefen. STATUS-only Build:

```powershell
.\scripts\windows\compile-funduino.ps1
```

Dies kompiliert, flasht aber nicht. Wenn `arduino:avr@1.8.8` fehlt, den
Bootstrap kontrolliert erneut ausfuehren. Keine Motorfirmware mit erfundenen
Pins bauen.

## Funduino erscheint nicht

Nur `detect-funduino.ps1` ohne `-Probe` verwenden. Kabel, USB-Port und
Geraetemanager pruefen; VID, PID, Seriennummer, Boardvariante und COM-Port
dokumentieren. `-Probe` und jeder Flash warten auf eine gesonderte Freigabe und
physisch getrennte Motorik.

## Unerwarteter Robotikzustand

Physisch Not-Stopp betaetigen und Motorenergie trennen. Funduino-USB abziehen,
Windows-Dienste stoppen und Simulation-only-Konfiguration wiederherstellen.
Keine Softwarediagnose ersetzt die elektrische Abschaltung.
