Skip to content

0.9.0 – swap mode: Garmin's filtered copy out, the original in

Choose a tag to compare

@futureweb futureweb released this 12 Oct 17:34
· 58 commits to main since this release

Swap mode: Garmin's filtered copy out, the original in – so Intervals holds the complete file
and "Reprocess file" keeps everything.

Upgrading needs no change; swap mode is off until you switch it on (BRIDGE_SWAP=true, a
question in setup, a switch on the web page).

Added

  • Swap mode (BRIDGE_SWAP=true, off by default). The official Garmin import stays on
    and is the trigger: within a minute of Garmin's filtered copy arriving, the bridge
    uploads the device's original as your own file, carries over what you may have set
    already (name, description, paired workout, type, RPE, feel, tags, gear, commute/race,
    ignore settings, custom fields without a script such as the logged intake) and then
    deletes the copy Garmin's import created in Intervals – nothing on Garmin Connect is
    touched, the bridge only ever reads from Garmin. Intervals computes every custom field and stream from the
    complete file itself, Reprocess file keeps them, nothing is marked as edited, and
    the activity is your own upload rather than Garmin-sourced data. No polling of Garmin
    – one original download per new activity, as before – and with the bridge down the
    copy simply stays and is completed or swapped later.
  • The only place the bridge deletes anything, so it is careful: Garmin's own import
    only, within BRIDGE_SWAP_HOURS (48) of the import, never with comments or
    hand-edited intervals on it, not when Garmin sent the unfiltered file anyway; upload
    first, delete last – a failure leaves a duplicate to see, never a loss. The new
    activity has a new id.
  • swap <id or link> [--apply]: the same for one activity by hand, also an older one.

Changed

  • enrich <id> --apply and the web page's One activity again also put the logged
    intake back (GarminFluidIntake, GarminCaloriesConsumed): Reprocess file empties
    every field the file does not fill.
  • Own streams are rewritten only into the activity they were written to.

Details: README – Modes. Verified live on one activity: all 24 streams and 21 Garmin fields from the original, training load unchanged, and all of it still there after Reprocess file.

Install: pip install -U garmin-intervals-bridge (Windows: py -m pip install --upgrade garmin-intervals-bridge), or the image ghcr.io/futureweb/garmin-intervals-bridge:0.9.0 / futurewebat/garmin-intervals-bridge:0.9.0 (Docker Hub).