Replay Mode
Replay Mode lets you watch historical F1 sessions with full Home Assistant integration. When you play back a recorded race or qualifying from F1 TV or another service, your automations and dashboards can follow the session in a way that is much closer to a live broadcast.
Your lights can react to a red flag. Your dashboard can show live timing. Race Control messages can still drive notifications while you watch the session later. Likely on-track incident detection can also follow replayed sessions, so incident notifications and the On-track Incident binary sensors can behave like they do during live timing. If the replay includes Track Map data, incident events can include the same optional location summary used during live sessions.
Use Replay Mode when you want to watch a completed session later. Do not switch the integration to Developer mode or provide a replay dump for this workflow.
Replay Mode includes seek controls for catching up with your broadcast. Rewinding can replay historical events again, so replay-driven automations and notifications may run again by design.
If you cannot watch a session live, turn on No Spoiler Mode before the session starts. Your dashboard stays frozen until you are ready. Then load the session in Replay Mode, press play when your broadcast begins, and experience everything as if it were live — without any spoilers.
What to expect
Replay Mode downloads completed session data from Formula 1's public archive and plays it back through your Home Assistant entities. By starting playback at the same moment the session begins on your TV, your dashboard and automations can follow the broadcast closely.
You do not need a local replay dump, a developer build, or F1TV Auth. Replay Mode provides its own selectors, load controls, media player, pause, and seek support.
This page uses the standard Replay Mode entity IDs for new installations, such as select.f1_replay_year and media_player.f1_replay_player.
If you upgraded from an older release and already have different registry IDs, keep using those existing entities. The integration does not rename installed entities automatically.
Replay Mode vs Developer mode
Replay Mode and Developer mode both send recorded timing data through live entities, but they solve different problems.
| Choose | When you should use it |
|---|---|
| Replay Mode | You want to watch a completed F1 session and keep Home Assistant synchronized with the broadcast |
| Developer mode | You are developing or testing F1 Sensor and need to reproduce a known sequence from a local replay dump |
| Behavior | Replay Mode | Developer mode |
|---|---|---|
| Data source | Formula 1's completed session archive | Local replay dump file |
| Normal audience | Home Assistant users | Maintainers and contributors |
| Session selection | Year and session selectors | File path configured before integration reload |
| Playback start | Manual Load and Play controls | Starts automatically when the integration loads |
| Pause and seek | Supported | Not supported for the local dump |
| Typical goal | Follow a TV or streaming replay | Reproduce bugs and run repeatable tests |
| Availability | Normal releases | Only builds with the developer interface enabled |
Watching a race, sprint, qualifying, or practice session later? Use Replay Mode.
Testing the integration with a dump supplied or captured for development? Use Developer Mode with Replay Dumps.
Replay Mode vs live F1TV Auth
Replay Mode is separate from live F1TV Auth. Public live timing works without a token, optional F1TV Auth can unlock extra live features during a real live session, and Replay Mode can use archived data after the session has completed.
This means Replay Mode can sometimes show data that public live timing did not show during the live session. For example, Pit Stops, Championship Prediction, Track Map, and incident location context can work in replay when the archive contains the needed data.
What Replay Mode can replay
| Data | Replay behavior |
|---|---|
| Public live timing | Session status, track status, Race Control, weather, driver timing, tyres, and top three can replay when available in the archive |
| Pit Stops | Works when the replay archive contains pit stop data |
| Championship Prediction | Works when the replay archive contains prediction data |
| Formation Start | Works for race and sprint sessions when the replay data supports it |
| Track Map | Best effort when the replay archive contains car position data |
| Incident Detection | Works from replayed public timing and can use replay Track Map location context when available |
Replay Track Map is best effort. If the loaded session does not contain usable car position data, the Track Map card waits instead of showing misleading car positions.
Entities
Replay Mode adds several control entities to Home Assistant.
Configuration entities
| Entity | Purpose |
|---|---|
select.f1_replay_year | Select the season year |
select.f1_replay_session | Select which session to replay |
select.f1_replay_start_reference | Choose where playback starts |
button.f1_replay_load | Download and prepare the selected session |
button.f1_replay_play | Start or resume playback |
button.f1_replay_pause | Pause playback |
button.f1_replay_stop | Stop playback and return to idle |
button.f1_replay_back_30 | Move replay back 30 seconds |
button.f1_replay_forward_30 | Move replay forward 30 seconds |
button.f1_replay_refresh | Refresh the session list |
Media player
| Entity | Purpose |
|---|---|
media_player.f1_replay_player | Standard media player with play, pause, stop, seek, and position tracking |
The media player entity lets you control replay using any media player integration or remote control. It supports normal media seek actions, reports current position, duration, and playback state, and makes it easy to integrate replay with other media players in your setup.
Status sensor
| Entity | Purpose |
|---|---|
sensor.f1_replay_status | Shows current replay state and progress |
Dashboard card
The F1 Replay Control card combines the Replay Mode selectors, load/play/pause/stop controls, drag-to-seek playbar, 30-second seek buttons, refresh button, and progress display in one Lovelace card.
Using Replay Mode
Step 1 - Select a session
- Use
select.f1_replay_yearto choose the season - Use
select.f1_replay_sessionto pick a session from that year
The session list shows all completed sessions from the selected year, with the most recent first.
Session data is typically available 15–60 minutes after a session ends. If you just finished watching a live session, wait a bit before the replay data becomes available.
Step 2 - Choose the start reference
Use select.f1_replay_start_reference to choose where playback begins:
- Formation start (race/sprint) - Playback starts from the formation lap. This is the default and recommended for races and sprints, since you can focus on watching the start rather than pressing a button at lights out.
- Session live - Playback starts from lights out (races) or pit exit open (practice/qualifying). This is the most precise option but requires you to press play at the exact moment.
The formation start option only applies to race and sprint sessions. For practice and qualifying, playback always starts from when the session went live.
The formation lap start point is estimated with approximately one second accuracy. Formula 1 does not provide an exact replay marker for when the formation lap begins, so there may be a small offset compared to your broadcast.
Step 3 - Load the session
Press button.f1_replay_load to download the session data.
The sensor.f1_replay_status shows download progress. Session data is cached locally, so loading the same session again is faster.
Step 4 - Sync with your broadcast
Start the session on your TV or streaming service. When you see the session begin, press button.f1_replay_play or use media_player.f1_replay_player at that exact moment.
For races and sprints (with formation start reference): Press play when the formation lap begins.
For practice and qualifying (or session live reference): Press play when the pit exit opens and cars start leaving the garage.
From this point, the replayed live sensors follow what you see on screen.
Step 5 - Control playback
If you pause your TV, pause the replay to stay in sync. When you resume, resume the replay.
- Pause - Press
button.f1_replay_pauseor pausemedia_player.f1_replay_player - Resume - Press
button.f1_replay_playor playmedia_player.f1_replay_player - Seek with the playbar - Drag the playbar in the F1 Replay Control card and release it at the target position
- Back 30 seconds - Press
button.f1_replay_back_30to move replay back 30 seconds - Forward 30 seconds - Press
button.f1_replay_forward_30to move replay forward 30 seconds - Stop - Press
button.f1_replay_stopto end playback and return to idle
Replay Seek Controls
Seeking backward can replay historical state changes again. Automations, notifications, and incident alerts that react to replayed events may run again when those events are replayed.
The replay seek controls help you line up Home Assistant with the F1 broadcast you are watching. You can use the draggable playbar for larger adjustments, or the 30-second buttons for small catch-up steps.
Dragging the playbar
The F1 Replay Control card shows a draggable playbar when media_player.f1_replay_player supports seek. Drag the handle to preview the target position, then release it to seek.
The card sends the seek command only when you release the handle. It does not send a service call for every drag movement, so the dashboard stays responsive while you choose the target point.
During a seek, the replay status may briefly show seeking. Longer jumps, especially with Track Map data available, can take a little longer while Replay Mode restores the correct session state.
How the 30-second buttons work
The Back 30 seconds and Forward 30 seconds buttons are still useful for small adjustments when your TV or streaming replay is slightly ahead or behind Home Assistant.
When you press Forward 30 seconds, Replay Mode does not simply skip to a new position and ignore what happened in between. It applies the events inside that 30-second window first, then continues from the new position.
That means important state changes still land correctly. If a red flag, Race Control update, session clock change, or other tracked event happens inside those 30 seconds, the related entities still end up in the right state after the jump.
When you press Back 30 seconds, Replay Mode restores replay state for the new position and then continues from there.
What to expect
- The playbar is available in the F1 Replay Control card when the replay media player supports seek
- The playbar sends
media_player.media_seekonly after you release the slider - The 30-second buttons remain available for quick manual adjustments
- The feature is intended to make manual catch-up simpler, not to guarantee perfect sync with every broadcaster
- Rewinding can replay the same historical event again, which means automations and notifications may trigger again by design
Best way to use it
If your TV or streaming replay is slightly out of sync, pause Replay Mode and use the playbar or 30-second buttons until the on-screen action matches your Home Assistant entities again. A practical reference point is the session clock, track status, or the latest Race Control message.
Seek controls are designed to preserve the visible replay state after the jump. If a session has a large amount of Track Map data, you may still see a short seeking period before playback resumes.
Media Player Entity
The media_player.f1_replay_player entity provides standard media player controls for replay.
State (enum)
- One of:
idle,buffering,playing,paused
Features
- Play, pause, and stop controls
- Seek to a specific playback position
- Position and duration tracking
- Works with any media player card or remote integration
Attributes
| Attribute | Type | Description |
|---|---|---|
| media_title | string | Name of the selected session |
| media_position | number | Current position in seconds |
| media_duration | number | Total duration in seconds |
| replay_state | string | Replay state (idle, selected, loading, ready, playing, paused, seeking) |
| selected_session | string | Name of the selected session |
| selected_session_id | string | Internal session identifier (best effort) |
| playback_position_s | number | Current position in seconds |
| playback_remaining_s | number | Remaining time in seconds |
| playback_total_s | number | Total playback duration in seconds |
| session_start_offset_s | number | Start offset in seconds from the underlying session archive (best effort) |
Replay Status Sensor
The sensor.f1_replay_status entity tracks the current state and provides detailed attributes.
State (enum)
- One of:
idle,selected,loading,ready,playing,paused,seeking
Attributes
| Attribute | Type | Description |
|---|---|---|
| selected_session | string | Name of the selected session |
| download_progress | number | Download progress percentage (0–100) |
| download_error | string | Error message if download failed |
| playback_position_s | number | Current playback position in seconds |
| playback_position_formatted | string | Current position as HH:MM:SS |
| playback_total_s | number | Total playback duration in seconds |
| playback_total_formatted | string | Total duration as HH:MM:SS |
| session_start_offset_s | number | Start offset in seconds from the underlying session archive (best effort) |
| paused | boolean | True when playback is paused |
| sessions_available | number | Number of sessions available for the selected year |
| selected_year | number | Currently selected year |
| index_year | number | Year that the session index was loaded from (best effort) |
| index_status | string | Index status such as ok, no_data, or error (best effort) |
| index_error | string | Error details when index fetch fails (best effort) |
Example: Sync with Apple TV
This automation keeps replay in sync with your Apple TV. When you pause the Apple TV, the replay pauses. When you play, it resumes.
automation:
- alias: "Pause F1 replay when Apple TV pauses"
trigger:
- platform: state
entity_id: media_player.apple_tv
to: "paused"
condition:
- condition: state
entity_id: media_player.f1_replay_player
state: "playing"
action:
- service: media_player.media_pause
target:
entity_id: media_player.f1_replay_player
- alias: "Resume F1 replay when Apple TV plays"
trigger:
- platform: state
entity_id: media_player.apple_tv
to: "playing"
condition:
- condition: state
entity_id: media_player.f1_replay_player
state: "paused"
action:
- service: media_player.media_play
target:
entity_id: media_player.f1_replay_player
Replace media_player.apple_tv with your actual media player entity. This works with any media player that reports play and pause states.
Additional entities in Replay Mode
Replay Mode provides access to all the same entities as a live session, plus entities that depend on data that is not part of public live timing. These entities stay registered in Home Assistant at all times. They can update in Replay Mode when the session archive contains the data, and some can also update during live sessions with optional F1TV Auth.
| Entity | Description |
|---|---|
sensor.f1_pitstops | Pit stop events and timing per car |
sensor.f1_championship_prediction_drivers | Predicted Drivers Championship standings |
sensor.f1_championship_prediction_teams | Predicted Constructors Championship standings |
binary_sensor.f1_formation_start | Formation start detection for race and sprint sessions |
These entities remain present even before you start a replay. Outside Replay Mode they are unavailable, and when you start a replay they work like any other entity.
The F1 Track Map card is not a normal entity. It can show replay car positions when the replay archive contains the needed position data.
For full details on each entity, see the Live Data reference.
Limitations
- While replay is active, the integration does not receive live data. Stop the replay to return to live mode.
- The live delay calibration feature is disabled during replay.
- Long seeks can briefly show the replay state as
seekingwhile the integration restores the correct session state. - Rewinding can replay historical events again, so replay-driven automations and notifications may run again.
- Rewinding can also replay historical incident events again, including possible on-track incident notifications.
- Replayed Track Map location context is best-effort and may be missing for sessions without usable car position data.
- Replay Mode does not protect you from spoilers on its own. Use No Spoiler Mode to keep your dashboard frozen until you are ready to watch.