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:
Scan (Adapter, Protokoll, Bordspannung, Codes aus Mode 03/07/0A). Schlägt er fehl, bricht
diagnoseab.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“.
Freeze Frame (Mode 02, Frame 00): auslösender Code, Last, Kühlmitteltemperatur, Drehzahl, Geschwindigkeit.
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.