Contrato
LSP nombra org, track, auto, sesión, eventos de telemetría y etapa onboard. Se suscriben a un circuito en su organización. Muchos autos publican. Su producto recibe esos autos como eventos.
LapsHub Live
El contrato con nombre de LapsHub Live. Organización → circuito → coche → sesión. Telemetría en directo más cámara de baja latencia. Live API es cómo construyes encima. Hosted Pit Wall es la UI opcional de primer partido en este mismo protocolo.
Ámbito de la org · Design partners · Specs antes del runtime
LapsHub Streaming Protocol es el lenguaje del stream del circuito. No es un formato binario nuevo. Equipos, streamers e integradores hablan LSP; Live API añade sesiones, acceso al stream y meters encima.
Organization
└── Track (subscribe: all org cars on this circuit)
└── Car
└── Session
├── Telemetry events
└── Stage (onboard) → publish / watch access
LSP nombra org, track, auto, sesión, eventos de telemetría y etapa onboard. Se suscriben a un circuito en su organización. Muchos autos publican. Su producto recibe esos autos como eventos.
Kafka o IoT crudo mueven bytes. No nombran qué org, track, auto o sesión está live, ni cuándo debe abrirse el onboard. Ese mapeo es LSP.
Lo que compran para construir: control de sesión, acceso al stream y meters de uso. El pit wall, overlay, app de serie o stream es de ustedes.
UI oficial opcional sobre el mismo protocolo. ¿Prefieren una pantalla llave en mano? El mismo backend Live, camino Hosted Pit Wall.
Conecten su fuente de telemetría por MQTT. Abran una sesión en GraphQL, emitan credenciales de corta vida y publiquen envelopes JSON desde su device, logger o bridge.
Llamen createLiveSession con el carId y trackId de su org. Una sesión live por auto en el circuito.
Llamen createTelemetryCredentials con role: PUBLISH. Live API devuelve endpoint, clientId, topicPublish y expiresAt.
Su device se conecta a mqtts://live-mqtt.lapshub.com:8883 por TLS y publica envelopes de telemetría a topicPublish. Hasta 50 puntos por mensaje.
LapsHub device, RaceBox o Dragy vía su bridge, loggers CAN/GPS, o cualquier stack que pueda correr un cliente MQTT y emitir JSON.
JSON sobre MQTT, application/json. Campos de envelope requeridos: v, orgId, trackId, carId y points[] con al menos ts. Opcionales por punto: lat, lon, speedMps, headingDeg, lap y escalares channels con nombre (rpm, throttle, etc.).
Los autos de su organización en sus circuitos. No es un tap al tráfico público de la app de piloto de LapsHub.
mutation {
createLiveSession(input: { carId: "car_42", trackId: "track_ra" }) {
id
status
}
}
mutation {
createTelemetryCredentials(
sessionId: "sess_1"
input: { role: PUBLISH, ttlSeconds: 3600 }
) {
endpoint
clientId
topicPublish
expiresAt
}
}
{
"endpoint": "mqtts://live-mqtt.lapshub.com:8883",
"clientId": "lh_org_1_car_42_sess_1",
"topicPublish": "live/org_1/track_ra/car_42/telemetry",
"expiresAt": "2026-08-17T19:00:00.000Z"
}
Broker previsto: mqtts://live-mqtt.lapshub.com:8883 (Preview, no live). Las credenciales son de corta vida: renueven antes de que expiren. El ingest batch HTTPS es una vía secundaria cuando un device no puede correr MQTT. Prefieran MQTT para GPS de alto Hz y canales CAN. Schema completo: asyncapi-telemetry-v1.yaml.
Suscríbanse a un circuito en su org. Los autos que publican envían eventos a ese stream del track en tiempo real. Emitan credenciales de subscribe con role: SUBSCRIBE o BOTH en createTelemetryCredentials.
Subscribe (your org, one circuit):
live/{orgId}/{trackId}/+/telemetry
Publish (one car):
live/{orgId}/{trackId}/{carId}/telemetry
Live API emite acceso de publish y subscribe de corta vida. HTTPS batch sigue como vía secundaria cuando no hay un cliente de stream.
Un envelope, uno o más puntos. Versión de schema v: 1. Lista completa de campos para socios de diseño: asyncapi-telemetry-v1.yaml.
{
"v": 1,
"orgId": "org_1",
"trackId": "track_ra",
"carId": "car_42",
"sessionId": "sess_1",
"points": [
{
"ts": "2026-08-17T18:00:00.000Z",
"lat": 43.798,
"lon": -87.992,
"speedMps": 42.1,
"headingDeg": 187.2,
"lap": 3,
"channels": { "rpm": 6120, "throttle": 0.82 }
}
]
}
Los datos del auto de alto Hz van por MQTT, no por el API de control. Los devices publican a un topic de auto; pit walls y overlays se suscriben al wildcard del track. Vean integración de dispositivos para el flujo de conectar y publicar.
Autos o loggers publican a live/{orgId}/{trackId}/{carId}/telemetry.
Pit walls, overlays y stacks de stream se suscriben a live/{orgId}/{trackId}/+/telemetry y reciben cada auto de la org en ese circuito.
No empujen puntos GPS de alto Hz por las APIs de sesión. Esas llamadas abren sesiones y acceso. El stream lleva los puntos.
Live API es cómo abren sesiones, otorgan acceso de stream y watch, y leen uso. El protocolo nombra qué significan esas llamadas. Las formas a nivel de cable siguen en revisión de socios de diseño.
Abran y cierren una sesión live para un auto en un track de su org.
Acceso de publish, subscribe y watch de corta vida. Abran acceso de watch solo mientras alguien está mirando.
Los meters reportan tiempo de publish, tiempo de watch y volumen de telemetría aceptada.
mutation {
createLiveSession(input: { carId: "car_42", trackId: "track_ra" }) {
id
status
}
}
Subscribe (your org, one circuit):
live/{orgId}/{trackId}/+/telemetry
Publish (one car):
live/{orgId}/{trackId}/{carId}/telemetry
GraphQL abre sesiones y etapas. MQTT lleva los datos live del auto. WebRTC lleva el onboard. GraphQL no es el bus de GPS live.
Onboard de baja latencia para su audiencia (objetivo por debajo de 2 s). Abran una etapa solo mientras alguien mira, luego alimenten YouTube, Twitch, TV o pantallas en el venue desde su propio stack.
Arranquen una etapa para el auto/sesión y envíen onboard desde la cámara.
El acceso de watch es de corta vida y facturable. Ábranlo solo mientras alguien está mirando.
Nosotros corremos el backend live. Ustedes deciden cómo el evento llega a YouTube, Twitch, TV, overlays y streams internos.
Lo que contamos como uso. El precio del programa piloto se define con socios de diseño.
video.publisherSegundos de participante mientras un publisher está conectado.
video.subscriberSegundos de participante mientras un viewer permanece conectado.
telemetry.messageConteo de eventos de telemetría aceptados o ítems de batch.
Estos contratos son para revisión de arquitectura con socios de diseño. Los endpoints de runtime aún no están en disponibilidad general. Las specs pueden cambiar antes del lanzamiento.
Soliciten acceso de socio de diseño. Cuéntenos de su producto, stream o pit wall y mapearemos sesiones, telemetría y etapas onboard a su roadmap.
Programa de socios de diseño. ¿Prefieren una pantalla llave en mano? Hosted Pit Wall. ¿Buscan la app de piloto? Descargar Gratis.