LapsHub Live

LapsHub Streaming Protocol

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

Qué es LSP

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

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.

No es un bus genérico

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.

Live API

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.

Hosted Pit Wall

UI oficial opcional sobre el mismo protocolo. ¿Prefieren una pantalla llave en mano? El mismo backend Live, camino Hosted Pit Wall.

Integración de dispositivos por MQTT

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.

1

Abran una sesión

Llamen createLiveSession con el carId y trackId de su org. Una sesión live por auto en el circuito.

2

Emitan credenciales MQTT

Llamen createTelemetryCredentials con role: PUBLISH. Live API devuelve endpoint, clientId, topicPublish y expiresAt.

3

Conecten y publiquen

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.

Fuentes soportadas

LapsHub device, RaceBox o Dragy vía su bridge, loggers CAN/GPS, o cualquier stack que pueda correr un cliente MQTT y emitir JSON.

Formato en el cable

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.).

Solo alcance de org

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.

Sesión + credenciales de publish (GraphQL)
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
  }
}
Respuesta de credenciales (ilustrativo)
{
  "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.

Suscripción al circuito

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.

Topics del track (ilustrativo)
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.

Ejemplo de JSON de evento

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.

Envelope de telemetría
{
  "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 }
    }
  ]
}

Stream de telemetría

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.

Publicar

Autos o loggers publican a live/{orgId}/{trackId}/{carId}/telemetry.

Suscribirse

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 es el plano de control

No empujen puntos GPS de alto Hz por las APIs de sesión. Esas llamadas abren sesiones y acceso. El stream lleva los puntos.

Plano de control

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.

Sesiones

Abran y cierren una sesión live para un auto en un track de su org.

Acceso

Acceso de publish, subscribe y watch de corta vida. Abran acceso de watch solo mientras alguien está mirando.

Uso

Los meters reportan tiempo de publish, tiempo de watch y volumen de telemetría aceptada.

Control GraphQL (no el plano de datos)
mutation {
  createLiveSession(input: { carId: "car_42", trackId: "track_ra" }) {
    id
    status
  }
}
Suscripción al track por MQTT
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.

Etapas de vídeo

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.

Publicar

Arranquen una etapa para el auto/sesión y envíen onboard desde la cámara.

Ver

El acceso de watch es de corta vida y facturable. Ábranlo solo mientras alguien está mirando.

Su distribución

Nosotros corremos el backend live. Ustedes deciden cómo el evento llega a YouTube, Twitch, TV, overlays y streams internos.

Meters

Lo que contamos como uso. El precio del programa piloto se define con socios de diseño.

video.publisher

Segundos de participante mientras un publisher está conectado.

video.subscriber

Segundos de participante mientras un viewer permanece conectado.

telemetry.message

Conteo de eventos de telemetría aceptados o ítems de batch.

Specs para socios de diseño

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.

Vean LSP en su stack

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.