2P by neo 25일전 | ★ favorite | 댓글 1개
  • 건강 데이터를 SQLite 데이터베이스로 파싱하고 조작하는 Python 스크립트
  • Garmin Connect 또는 Garmin 시계, FitBit CSV, MS Health CSV 파일에서 데이터를 다운로드하여 구문 분석하고, Jupyter 노트북을 사용해 Sqlite 데이터베이스에 있는 데이터를 분석

기능

  • Garmin Connect의 "Daily Summary" 페이지에서 하루 종일 심박수, 활동, 등반/하강, 스트레스, 강도 분 등의 데이터를 자동으로 다운로드하고 가져옴
  • 수면, 체중, 안정 시 심박수 데이터를 Garmin Connect에서 추출하여 JSON 파일로 저장하고 데이터베이스에 가져옴
  • Garmin Connect에서 활동 파일을 다운로드하고 가져옴. 모든 활동에 대한 요약 테이블과 일부 활동 유형에 대한 세부 데이터 포함
  • 일일, 주간, 월간, 연간 요약을 포함하는 테이블로 데이터를 요약함
  • 명령줄 또는 Jupyter 노트북을 사용하여 데이터를 그래프로 표시함
  • 다운로드한 JSON 및 FIT 파일을 보관하여 Garmin Connect에 다시 연결하거나 데이터를 다시 다운로드하지 않고 데이터베이스를 재생성할 수 있음
  • 활동을 TCX 파일로 내보낼 수 있음

사용 방법

릴리스

  • GarminDb는 PyPI에 호스팅됨. Python 3.x가 필요함. 터미널에서 pip install garmindb를 실행하여 최신 릴리스를 설치함
  • GarminConnectConfig.json.example~/.GarminDb/GarminConnectConfig.json으로 복사하고, Garmin Connect 사용자 이름과 비밀번호를 추가하고 데이터의 시작 날짜를 조정함
  • 모든 데이터를 다운로드하고 데이터베이스를 생성하려면 garmindb_cli.py --all --download --import --analyze를 실행함
  • 최신 데이터를 다운로드하고 가져와 데이터베이스를 점진적으로 업데이트하려면 garmindb_cli.py --all --download --import --analyze --latest를 실행함
  • 데이터베이스 파일을 백업하려면 가끔 garmindb_cli.py --backup을 실행함

소스에서

  • SSH 클론 방법을 사용하여 GarminDB 저장소를 Git 클론함. 서브모듈은 SSH를 사용해야 함
  • 클론한 트리에서 make setup을 실행하여 데이터를 처리할 준비를 함
  • GarminConnectConfig.json.example~/.GarminDb/GarminConnectConfig.json으로 복사하고, 사용자 이름과 비밀번호를 추가하고 시작 날짜를 조정함
  • make create_dbs를 한 번 실행하여 데이터를 가져오고 처리함
  • make 명령을 주기적으로 실행하여 모든 로컬 데이터를 최신 상태로 유지함

Jupyter 노트북

  • 데이터베이스에서 데이터를 분석하기 위한 Jupyter 노트북은 소스 트리의 'Jupyter' 디렉토리에 있음

플러그인

  • 플러그인은 사용자가 데이터베이스에 처리하고 저장할 데이터 유형을 확장할 수 있도록 함. GarminDb는 이미 타사 Connect IQ 앱과 데이터 필드를 처리하기 위한 여러 플러그인을 보유하고 있음
Hacker News 의견
  • Garth를 사용하여 인증하는 앱에 주의가 필요함. Garmin과의 통합이 어려움

    • Garmin의 API와 SDK는 사용하기 어려움
    • Garmin Connect에서 데이터를 FIT 파일로 내보내는 방법이 있음
    • Python과 Go의 오픈 소스 라이브러리로 FIT 파일을 읽고 해석할 수 있음
  • 장치에서 현재 데이터를 가져오는 방법이 있음

    • 장치를 컴퓨터에 연결하고 파일 시스템으로 마운트하여 .FIT 파일을 가져올 수 있음
  • Intervals를 사용하여 Garmin과 Strava 관련 데이터를 분석하는 것이 유용함

    • 특히 조정 관련 메트릭을 생성할 수 있어 좋음
  • Garmin은 스마트폰 앱에 의존하는 대신 데이터를 더 잘 관리할 수 있는 하드웨어를 제공해야 함

    • API 접근이 어려운 것뿐만 아니라 커뮤니티의 의견을 듣지 않음
    • 장비 없이 운동을 필터링할 수 있는 기능이 필요함
  • Garmin의 SDK는 오래되었고 데이터 접근이 제한적임

    • FIT 파일 형식은 제한된 앱에서만 지원됨
  • 데이터 접근이 더 나은 피트니스 시계가 필요함

    • 실시간 건강 정보에 접근할 수 있는 시계가 필요함
  • 새로운 Garmin Vivoactive5를 구입했으며, Garmin의 API가 최적은 아니지만 만족함

    • Apple Watch 시리즈 10을 고려했으나 배터리 수명과 가격 때문에 포기함
    • 해킹 가능한 오픈 시계가 필요하며, Pebble의 부활이 이 공백을 채울 수 있을 것임