2 คะแนน โดย GN⁺ 2025-02-04 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • สคริปต์ Python สำหรับแยกวิเคราะห์และจัดการข้อมูลสุขภาพเป็นฐานข้อมูล SQLite
  • ดาวน์โหลดและแยกวิเคราะห์ข้อมูลจาก Garmin Connect หรือนาฬิกา Garmin, ไฟล์ FitBit CSV, และไฟล์ MS Health CSV แล้วใช้ Jupyter โน้ตบุ๊กเพื่อวิเคราะห์ข้อมูลในฐานข้อมูล Sqlite

ฟีเจอร์

  • ดาวน์โหลดและนำเข้าข้อมูลอัตราการเต้นหัวใจตลอดทั้งวัน กิจกรรม การไต่ระดับ/การลดระดับ ความเครียด นาทีความเข้มข้น และข้อมูลอื่น ๆ โดยอัตโนมัติจากหน้า "Daily Summary" ของ Garmin Connect
  • แยกข้อมูลการนอน น้ำหนัก และอัตราการเต้นหัวใจขณะพักจาก 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 เป็นครั้งคราว

จากซอร์ส

  • โคลน Git รีโพซิทอรี GarminDB โดยใช้วิธี SSH clone และซับโมดูลต้องใช้ SSH
  • ในทรีที่โคลนมาแล้ว ให้รัน make setup เพื่อเตรียมพร้อมสำหรับประมวลผลข้อมูล
  • คัดลอก GarminConnectConfig.json.example ไปยัง ~/.GarminDb/GarminConnectConfig.json จากนั้นเพิ่มชื่อผู้ใช้และรหัสผ่าน และปรับวันที่เริ่มต้น
  • รัน make create_dbs หนึ่งครั้งเพื่อนำเข้าและประมวลผลข้อมูล
  • รันคำสั่ง make เป็นระยะเพื่อให้ข้อมูลภายในเครื่องทั้งหมดเป็นปัจจุบันอยู่เสมอ

Jupyter โน้ตบุ๊ก

  • Jupyter โน้ตบุ๊กสำหรับวิเคราะห์ข้อมูลจากฐานข้อมูลอยู่ในไดเรกทอรี 'Jupyter' ของซอร์สทรี

ปลั๊กอิน

  • ปลั๊กอินช่วยให้ผู้ใช้ขยายประเภทข้อมูลที่ต้องการประมวลผลและจัดเก็บในฐานข้อมูลได้ และ GarminDb มีปลั๊กอินหลายตัวอยู่แล้วสำหรับรองรับแอป Connect IQ และฟิลด์ข้อมูลจากภายนอก

1 ความคิดเห็น

 
GN⁺ 2025-02-04
ความคิดเห็นจาก Hacker News
  • ควรระวังแอปที่ยืนยันตัวตนโดยใช้ Garth การทำอินทิเกรชันกับ Garmin ทำได้ยาก

    • API และ SDK ของ Garmin ใช้งานยาก
    • มีวิธีส่งออกข้อมูลจาก Garmin Connect เป็นไฟล์ FIT
    • สามารถอ่านและตีความไฟล์ FIT ได้ด้วยไลบรารีโอเพนซอร์สของ Python และ Go
  • มีวิธีดึงข้อมูลปัจจุบันจากอุปกรณ์โดยตรง

    • เชื่อมต่ออุปกรณ์เข้ากับคอมพิวเตอร์และเมานต์เป็นระบบไฟล์เพื่อดึงไฟล์ .FIT ออกมาได้
  • การใช้ Intervals เพื่อวิเคราะห์ข้อมูลที่เกี่ยวข้องกับ Garmin และ Strava มีประโยชน์

    • โดยเฉพาะอย่างยิ่งเพราะสามารถสร้างเมตริกที่เกี่ยวกับการพายเรือได้
  • Garmin ควรมีฮาร์ดแวร์ที่ช่วยให้จัดการข้อมูลได้ดีกว่า แทนที่จะพึ่งพาแอปสมาร์ตโฟน

    • ไม่เพียงแต่เข้าถึง API ได้ยาก แต่ยังไม่รับฟังความเห็นจากชุมชนด้วย
    • จำเป็นต้องมีฟีเจอร์สำหรับกรองการออกกำลังกายที่ไม่มีอุปกรณ์
  • SDK ของ Garmin ค่อนข้างล้าสมัยและการเข้าถึงข้อมูลก็มีข้อจำกัด

    • รูปแบบไฟล์ FIT รองรับได้เพียงในแอปที่มีข้อจำกัด
  • จำเป็นต้องมีนาฬิกาฟิตเนสที่เข้าถึงข้อมูลได้ดีกว่านี้

    • ต้องการนาฬิกาที่เข้าถึงข้อมูลสุขภาพแบบเรียลไทม์ได้
  • เพิ่งซื้อ Garmin Vivoactive5 รุ่นใหม่มา และแม้ว่า API ของ Garmin จะไม่ดีที่สุด แต่ก็พอใจ

    • เคยพิจารณา Apple Watch ซีรีส์ 10 แต่ล้มเลิกเพราะอายุแบตเตอรี่และราคา
    • ต้องการนาฬิกาโอเพนที่แฮ็กได้ และการกลับมาของ Pebble อาจเติมเต็มช่องว่างนี้ได้