- Script Python để phân tích và thao tác dữ liệu sức khỏe thành cơ sở dữ liệu SQLite
- Tải xuống và phân tích dữ liệu từ Garmin Connect hoặc đồng hồ Garmin, file CSV của FitBit, CSV của MS Health, rồi dùng notebook Jupyter để phân tích dữ liệu trong cơ sở dữ liệu Sqlite
Tính năng
- Tự động tải xuống và nhập dữ liệu như nhịp tim cả ngày, hoạt động, leo cao/xuống dốc, căng thẳng, phút cường độ... từ trang "Daily Summary" của Garmin Connect
- Trích xuất dữ liệu giấc ngủ, cân nặng, nhịp tim lúc nghỉ từ Garmin Connect, lưu thành file JSON và nhập vào cơ sở dữ liệu
- Tải xuống và nhập file hoạt động từ Garmin Connect. Bao gồm bảng tóm tắt cho mọi hoạt động và dữ liệu chi tiết cho một số loại hoạt động
- Tóm tắt dữ liệu thành các bảng gồm tổng hợp theo ngày, tuần, tháng và năm
- Vẽ biểu đồ dữ liệu bằng dòng lệnh hoặc notebook Jupyter
- Lưu trữ các file JSON và FIT đã tải xuống để có thể tái tạo cơ sở dữ liệu mà không cần kết nối lại với Garmin Connect hoặc tải lại dữ liệu
- Có thể xuất hoạt động ra file TCX
Cách dùng
Bản phát hành
- GarminDb được lưu trữ trên PyPI. Cần Python 3.x. Chạy
pip install garmindb trong terminal để cài bản phát hành mới nhất
- Sao chép
GarminConnectConfig.json.example thành ~/.GarminDb/GarminConnectConfig.json, thêm tên người dùng và mật khẩu Garmin Connect, rồi điều chỉnh ngày bắt đầu của dữ liệu
- Để tải toàn bộ dữ liệu và tạo cơ sở dữ liệu, chạy
garmindb_cli.py --all --download --import --analyze
- Để tải và nhập dữ liệu mới nhất nhằm cập nhật tăng dần cho cơ sở dữ liệu, chạy
garmindb_cli.py --all --download --import --analyze --latest
- Để sao lưu file cơ sở dữ liệu, thỉnh thoảng chạy
garmindb_cli.py --backup
Từ mã nguồn
- Dùng phương thức clone SSH để Git clone kho lưu trữ GarminDB. Submodule cũng phải dùng SSH
- Trong cây thư mục đã clone, chạy
make setup để chuẩn bị xử lý dữ liệu
- Sao chép
GarminConnectConfig.json.example thành ~/.GarminDb/GarminConnectConfig.json, thêm tên người dùng và mật khẩu, rồi điều chỉnh ngày bắt đầu
- Chạy
make create_dbs một lần để nhập và xử lý dữ liệu
- Chạy lệnh
make định kỳ để giữ toàn bộ dữ liệu cục bộ luôn được cập nhật
Notebook Jupyter
- Các notebook Jupyter để phân tích dữ liệu trong cơ sở dữ liệu nằm trong thư mục 'Jupyter' của cây mã nguồn
Plugin
- Plugin cho phép người dùng mở rộng các loại dữ liệu được xử lý và lưu trong cơ sở dữ liệu. GarminDb đã có sẵn nhiều plugin để xử lý ứng dụng Connect IQ và các trường dữ liệu của bên thứ ba
1 bình luận
Ý kiến trên Hacker News
Cần thận trọng với các ứng dụng xác thực bằng Garth. Việc tích hợp với Garmin khá khó
Có cách lấy dữ liệu hiện tại từ thiết bị
.FITDùng Intervals để phân tích dữ liệu liên quan đến Garmin và Strava là hữu ích
Garmin nên cung cấp phần cứng cho phép quản lý dữ liệu tốt hơn thay vì phụ thuộc vào ứng dụng điện thoại thông minh
SDK của Garmin đã cũ và quyền truy cập dữ liệu bị hạn chế
Cần một chiếc đồng hồ thể thao có khả năng truy cập dữ liệu tốt hơn
Tôi đã mua Garmin Vivoactive5 mới và khá hài lòng dù API của Garmin không phải tốt nhất