Signed-off-by: Thomas Klaehn <tkl@blackfinn.de>
1.7 KiB
Garmin Activity Loader
Downloads all Garmin Connect activities (original files, full history on the first run, then new ones every 5 minutes) and hands the FIT files of selected activity types to fit-monitor.
Uses the unofficial Garmin Connect login via garminconnect; Garmin changes its login now and then, so a library update may be needed when it stops working.
Data layout (/srv/garmin-activity-loader/data)
| Path | Content |
|---|---|
archive/<typeKey>/ |
every activity, <id>_<date>_<name>.fit |
import/<typeKey>/ |
hard links to the FIT files of the selected types; mounted into fit-monitor as /data/garmin |
garmin-state.json |
downloaded activities, failed downloads, import progress |
.garminconnect/ |
login tokens |
Activity type switch
GARMIN_IMPORT_TYPES in .env is a comma-separated list of Garmin type keys.
A parent key includes its sub types (cycling covers road_biking,
virtual_ride, …). Empty means archive only. List the keys, with * marking
the currently selected ones:
docker compose run --rm garmin-activity-loader types
After changing the switch, restart the container; import/ is updated on the
next cycle. Removing a type only removes its links, activities fit-monitor has
already imported stay in the database.
Setup
cp .env.example .env # fill in credentials and GARMIN_IMPORT_TYPES
docker compose run --rm garmin-activity-loader login # asks for the MFA code if needed
docker compose up -d