Sitzungen, Bericht und Mitschnitt

Vollständige Diagnose

obd-diag diagnose --port /dev/ttyUSB0                   # Tabelle
obd-diag diagnose --port /dev/ttyUSB0 --save            # Sitzung speichern, Pfad auf stderr
obd-diag diagnose --port /dev/ttyUSB0 --pdf bericht.pdf --csv codes.csv
obd-diag diagnose --port /dev/ttyUSB0 --online-vin      # FIN zusätzlich bei NHTSA vPIC
obd-diag diagnose --port /dev/ttyUSB0 --online-codes    # Codes ohne Katalogtext online erklären

diagnose liest in einem Durchgang, nur lesend:

  1. Scan (Adapter, Protokoll, Bordspannung, Codes aus Mode 03/07/0A). Schlägt er fehl, bricht diagnose ab.

  2. Readiness (Mode 01 PID 01): Motorkontrollleuchte, gemeldete Codezahl, Motorart (Otto/Diesel) und je Monitor „abgeschlossen“, „nicht abgeschlossen“ oder „nicht unterstützt“, dazu „Alle Tests abgeschlossen: ja/nein“.

  3. Freeze Frame (Mode 02, Frame 00): auslösender Code, Last, Kühlmitteltemperatur, Drehzahl, Geschwindigkeit.

  4. FIN (Mode 09 PID 02) mit Offline-Dekodierung (FIN-Dekodierung).

Antwortet das Fahrzeug auf einen der Teile 2 bis 4 nicht, fehlt nur dieser Teil.

Bemerkung

„Alle Tests abgeschlossen“ ist bewusst keine AU-Bewertung. Seit 2018 gehört zur AU bei allen OBD-Fahrzeugen wieder die Endrohrmessung; welche offenen Monitore toleriert werden, hängt vom Fahrzeug und vom AU-Gerät ab.

Sitzungen

Eine Sitzung (Scan mit Klartexten, Readiness, Freeze Frame, FIN, Zeitpunkt) wird als JSON unter ~/.local/share/obd-diag/sessions/session-JJJJMMTT-HHMMSS.json gespeichert. Vorhandene Dateien werden nie überschrieben (dann …-2.json). Die Datei trägt "format": "obd-diag-session" und "version": 1; fremde oder neuere Formate lehnt das Laden ab.

Die Sitzung ist sprachneutral bis auf die Fehlercode-Texte: Die stehen in der Sprache des Scans. Alles andere (Monitornamen, Beschriftungen) erscheint beim Öffnen oder Exportieren in der eingestellten Sprache.

Sitzungen vergleichen

Zwei gespeicherte Sitzungen zeigen, was sich zwischen zwei Diagnosen geändert hat, etwa vor und nach einer Reparatur oder ein paar Fahrten nach dem Löschen. Der Vergleich arbeitet nur mit den Dateien und spricht das Fahrzeug nicht an.

obd-diag compare ~/.local/share/obd-diag/sessions/session-20261007-143205.json \
    ~/.local/share/obd-diag/sessions/session-20261010-091512.json
Vorher:  2026-10-07 14:32  …/session-20261007-143205.json
Nachher: 2026-10-10 09:15  …/session-20261010-091512.json

Fehlercodes:
  + P0171: neu: gespeichert
  - P0300  Zufällige/mehrfache Zylinder-Verbrennungsaussetzer erkannt: entfällt (vorher: gespeichert)
  = P0420  Katalysatorwirkungsgrad unter Schwellwert (Bank 1): weiterhin gespeichert, permanent

Readiness:
  ~ Katalysator: nicht abgeschlossen → abgeschlossen

Die ältere Sitzung gilt als „vorher“, die Reihenfolge der Dateien ist egal. + ist neu, - entfallen, ~ geändert, = unverändert. Verglichen werden:

  • Fehlercodes: neue, entfallene und weiterhin vorhandene Codes, dazu Wechsel der Art (z. B. ausstehend → gespeichert).

  • Readiness: Motorkontrollleuchte, gemeldete Codezahl, jeder Monitor und „Alle Tests abgeschlossen“.

  • Freeze Frame: auslösender Code und Messwerte.

  • Zähler seit dem Löschen (Gebrauchtwagen-Check): Warmläufe, Strecke und Zeit seit dem Löschen sowie mit Warnleuchte. Fallen die Zähler seit dem Löschen, wurde dazwischen gelöscht; das ist rot markiert.

  • Fahrzeug und Verbindung: FIN (bei verschiedener FIN warnt obd-diag), Adapter, Protokoll und Bordspannung (Unterschiede ab 0,1 V).

--json gibt den Vergleich maschinenlesbar aus. In der Oberfläche vergleicht „Datei → Mit Sitzung vergleichen …“ die angezeigte Diagnose mit einer gespeicherten Datei; Verbesserungen erscheinen grün, Verschlechterungen rot.

PDF-Bericht und CSV

obd-diag export ~/.local/share/obd-diag/sessions/session-20261007-143205.json \
    --pdf bericht.pdf --csv fehlercodes.csv
  • PDF (DIN A4, in der eingestellten Sprache): Fahrzeug, Adapter, Protokoll, Bordspannung, Kurzübersicht, Readiness, Fehlercodes mit Erklärung, Ursachen, Symptomen und Kostenrahmen, Freeze Frame. Schrift: DejaVu Sans, Liberation Sans oder Noto Sans, falls installiert (eingebettet), sonst Helvetica.

  • CSV: eine Zeile pro Fehlercode (Code, Art, Titel, Beschreibung, Ursachen, Symptome, MIL, Abgasrelevant, Reparaturaufwand, Kosten, Datum, FIN). UTF-8 mit BOM; auf Deutsch mit ;, auf Englisch mit , als Trennzeichen, damit eine Tabellenkalkulation in dieser Sprache sie per Doppelklick richtig öffnet.

Mitschnitt (--trace)

Alle Befehle mit Adapter schneiden mit --trace jede gesendete und empfangene Zeile mit Zeitstempel mit:

obd-diag diagnose --port /dev/ttyUSB0 --trace            # ~/.local/share/obd-diag/traces/
obd-diag diagnose --port /dev/ttyUSB0 --trace auto.log   # eigene Datei
# obd-diag 0.0.1 Mitschnitt 2026-10-07T16:09:33+02:00 /dev/ttyUSB0 38400 Baud
    0.000 >> ATZ\r
    0.508 << ATZ\r\r\rELM327 v1.5\r\r>
    3.013 >> 03\r
    3.016 << 00A\r0: 430404200133\r1: 0300C100\r\r>

>> ist gesendet, << empfangen, !! ein Fehler; Steuerzeichen stehen als \r bzw. \xNN. Wie die Antwort in der letzten Zeile zu lesen ist, erklärt Antwortformate. In der Oberfläche schaltet „Optionen → Adapter-Mitschnitt aufzeichnen“ das für jede Aktion ein. Der Mitschnitt enthält ggf. die FIN und bleibt lokal.