Skip to content

[Feature]: Expose mini-sector (Segments) data from the TimingData stream #702

Description

@Tagliax

The TimingData stream — already subscribed in signalr.py (PUBLIC_LIVE_STREAMS) — carries per-driver mini-sector data that is currently discarded during parsing. There is no reference to Segments anywhere in the codebase, so the information never reaches an entity.

Captured payload from a live race session (2026 Spanish GP, lap 57), obtained by adding a temporary log line in _process_payload:

{"Lines": {"63": {"Sectors": {"0": {"Segments": {"4": {"Status": 2048}}}}}}}

The structure is Lines.<racing_number>.Sectors.<sector_index>.Segments.<segment_index>.Status, which is the data behind the segmented colour strip shown on the official F1 live timing page (roughly 20-25 segments per lap, updated as each car crosses them).

Use case: rendering the mini-sector strip per driver in a Lovelace card. This is currently impossible: sensor.*_driver_positions only exposes the three macro sectors (sector_1..3 with personal_fastest / overall_fastest), which is a much coarser view than the official timing screen.

Possible approach: carry the segment statuses into the driver positions payload, for example as sectors[].segments[] alongside the existing sector fields, or expose them through a dedicated websocket command like the existing f1_sensor/lap_position/session.

Environment: f1_sensor 5.5.1, Home Assistant 2026.9.x, container install.

If useful, I can capture a fuller sample at the next track session — e.g. the distinct Status values observed across a full session, or a complete Sectors payload for one driver over a lap — just say what would help.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions