3.4 KiB
Runtime-derived tachograph projections
Runtime Processing now exposes the tachograph driving-derived Esper bundle through the unified runtime event assembly layer.
Endpoint
POST /api/eventhub/runtime-processing/driver-derived-projections
The request body uses the same selector fields as the existing runtime endpoints:
sessionIdfor one uploaded tachograph file sessionsessionIdsfor multiple uploaded tachograph file sessionscompositeSessionIdfor an existing tachograph composite sessiontenantKey+ driver selector for tachograph DB / YellowFox DB runtime sourceseventBackendwithSOURCE_DBorEVENTHUB_DBwhere supportedsourceFamilies, for exampleTACHOGRAPH_FILE_SESSION,TACHOGRAPH_DB,YELLOWFOX_DBdriverKey,driverSourceEntityId,driverCardNation,driverCardNumberoccurredFrom,occurredToexpandVehicleEventsvehicleExpansionPaddingMinutes
Additional Esper thresholds are optional:
significantDrivingMinutesminimumRestPeriodMinutes
When omitted, the defaults are read from:
eventhub:
tachograph-file-session:
processing:
significant-driving-minutes: 3
minimum-rest-period-minutes: 720
Flow
runtime request
-> UnifiedRuntimeEventAssemblyService
-> driver seed events
-> discovered vehicles
-> optional vehicle-expanded events
-> merged runtime event stream
-> UnifiedEventTimelineReconstructor
-> DriverTimelineReusableProjectionBuilder.buildEsperDrivingDerivedProjectionBundleFromEvents(...)
-> TachographEsperDriverProcessingResultDto
The derived part always uses the event-input Esper path. This means the runtime stream is passed as point events to Esper, where activity and card-vehicle-usage intervals are paired and vehicle-usage intervals are merged before the existing driving-derived rules run.
Example: composite tachograph file session
{
"compositeSessionId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"sourceFamilies": ["TACHOGRAPH_FILE_SESSION"],
"driverKey": "12:12345678901234",
"occurredFrom": "2026-05-01T00:00:00Z",
"occurredTo": "2026-05-31T23:59:59Z",
"expandVehicleEvents": true,
"vehicleExpansionPaddingMinutes": 15,
"significantDrivingMinutes": 3,
"minimumRestPeriodMinutes": 720
}
Response
The response contains runtime assembly metadata and the tachograph Esper result:
request
driverSeedEventCount
discoveredVehicleCount
expandedVehicleEventCount
mergedEventCount
discoveredVehicles
projection
notes
projection is the same high-level structure returned by the tachograph file-session Esper endpoint, including:
- activity interval count/list
- driving interval count/list
- driving interruption intervals
- daily/weekly rest candidate intervals
- daily/weekly rest candidate coverage intervals
- unclassified rest candidate coverage intervals
- potential home overnight stays
- potential in-vehicle overnight stays
- potential in-vehicle trips
- vehicle usage intervals
- VU card absent intervals
- support geo events
Boundary note
Runtime processing works with point events. If occurredFrom/occurredTo cuts through a source interval, the matching START/END or INSERT/WITHDRAW point may be outside the selected window. For evaluations near boundaries, request a wider event window or use vehicle expansion padding so Esper receives enough point events to reconstruct the interval.