Skip to content

Add propulsion diagnostics group: engine fault lamps and active trouble codes - #682

Open
dirkwa wants to merge 1 commit into
SignalK:masterfrom
dirkwa:j1939-propulsion-diagnostics
Open

Add propulsion diagnostics group: engine fault lamps and active trouble codes#682
dirkwa wants to merge 1 commit into
SignalK:masterfrom
dirkwa:j1939-propulsion-diagnostics

Conversation

@dirkwa

@dirkwa dirkwa commented Aug 6, 2026

Copy link
Copy Markdown

Engine controllers report structured diagnostics that currently have no home in the spec: the four standard fault lamps (malfunction, red stop, amber warning, protect) and the list of active diagnostic trouble codes identified by SPN and FMI — J1939's DM1 message, which many marine engines (Yamaha, Volvo Penta, Yanmar, ...) emit natively and NMEA 2000 gateways translate.

This adds propulsion.<id>.diagnostics with boolean lamp values and an activeCodes array of {spn, fmi, occurrenceCount} objects. Engine measurements need no spec change — the existing propulsion paths cover the J1939 engine suite — and the alerting side stays with the notifications tree; this is only the structured-data surface, so a consumer can show the actual fault codes rather than just "engine alarm".

Context: canboat is growing a J1939 decode flavor (canboat/canboat#820) and Signal K Server a listen-only J1939 socketcan connection, with n2k-signalk mapping the decoded records (SignalK/n2k-signalk#340). DM1 lamp states currently land as a notification; once this is in, the structured codes get proper paths.

Tested: schema validates the extended propulsion-sample.json (207 passing), and rejects a malformed activeCodes value (verified, then removed the negative fixture).

…codes

Engine controllers report structured diagnostics that had no home in
the spec: the four standard fault lamps (malfunction, red stop, amber
warning, protect) and the list of active diagnostic trouble codes
identified by SPN and FMI (e.g. J1939 DM1). Engine measurements were
already covered by the existing propulsion paths; this adds only the
diagnostics surface, with the alerting side left to the notifications
tree.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant