小米秤数据自动同步到佳明garmin connect

​ 本工具可以将小米运动健康 (Mi Fitness) 中的体重数据,自动生成 Garmin 兼容的 FIT 文件并同步到佳明 Connect 账户。目前支持所有已经导入到小米运动健康中的体重数据。

安装miniconda3

下载地址:https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe

目前最新版本是3.13

需要注意miniconda3个人用没问题,但是公司用需要商业授权。

创建一个虚拟环境

1
conda create -n garmin-weight-sync python=3.12.6

![image-20260112120529235](F:\Program Files\PortableGit\blog\source\pic\image-20260112120529235.png)

![image-20260112120618354](F:\Program Files\PortableGit\blog\source\pic\image-20260112120618354.png)

1
conda activate garmin-weight-sync

![image-20260112120830339](F:\Program Files\PortableGit\blog\source\pic\image-20260112120830339.png)

下载代码

https://github.com/XiaoSiHwang/garmin-weight-sync

安装依赖

1
pip install -r requirements.txt

![image-20260112121340914](F:\Program Files\PortableGit\blog\source\pic\image-20260112121340914.png)

快速配置用户文件

在项目文件夹中,找到 users.json 文件。这是程序唯一的配置文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"users": [
{
"username": "你的小米账户",
"password": "你的小米密码",
"model": "你的小米设备ID 如S400填 yunmai.scales.ms103",
"token": {
"userId": "",
"passToken": "",
"ssecurity": ""
},
"garmin": {
"email": "你的佳明账户",
"password": "你的佳明密码",
"domain": "国际区填COM 国区填写 CN"
}
}
]
}

关键参数说明:

  • model: 设备型号。如果您使用的是 小米体脂秤 S400,请填 yunmai.scales.ms103。如果你不知道设备信号,保持默认即可,目前支持所有已经导入到小米运动健康中的体重数据。所以只要你的体重数据已经同步到小米运动健康,就可以忽略这个参数。
  • domain: 佳明服务器区域。中国区CN国际区(如台湾、香港、美国)填 COM
  • token: 初始留空即可。程序运行成功后会自动保存登录凭证,下次无需重复输入。

使用流程

第一阶段:获取小米授权 (仅需执行一次)

因为小米账号需要处理图形验证码或短信验证,我们需要手动运行登录工具:

1
python src/xiaomi/login.py --config users.json
  1. 图形验证码:程序会自动在您的网页浏览器中打开一张图片。看清验证码后,回到终端输入并回车。
  2. 2FA 验证:如果您的账号开启了二次验证,程序会提示已发送验证码到您的手机,输入收到的 6 位数字即可。
  3. 成功提示:看到 ✅ Login SUCCESS! 后,程序会自动更新 users.json

第二阶段:同步数据到佳明

授权成功后,运行主程序开始同步:

1
2
# 获取数据、生成 FIT 文件、并全自动同步到佳明
python src/main.py --config users.json --sync

程序运行时会做什么:

  1. 自动登录您的小米账户(使用之前获取的 Token)。
  2. 从小米服务器拉取您的历史体重记录(默认显示最近 10 条)。
  3. 自动在本地 weight_data_{账户}.json 备份数据。
  4. garmin-fit/ 文件夹下生成佳明专用的数据文件。
  5. 自动登录佳明系统并将数据同步上去。

进阶功能说明

常用命令参数

  • --limit N: 指定显示多少条最近的体重记录(默认 10)。
  • --fit: 仅生成本地 FIT 文件,不上传。
  • --sync: 同时执行生成和上传(一键同步模式)。

定时自动同步 (长期使用)

您可以设置定时任务(如 Linux 的 cron 或 Windows 的任务计划程序),每天自动运行:

1
2
# 示例:每天凌晨 2 点执行同步
0 2 * * * cd /您的项目路径 && .venv/bin/python src/main.py --sync

数据过滤配置

本工具支持在同步数据前根据健康指标过滤体重数据。详细配置请查看 FILTER_CONFIG.md

快速示例

users.json 中为每个用户配置独立的过滤规则:

以下新增代码表示只上传体重60-70kg的数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"users": [
{
"username": "您的手机号/邮箱",
"password": "小米账号密码",
"model": "yunmai.scales.ms103",
"token": { ... },
"garmin": {
"email": "您的佳明账号",
"password": "佳明账号密码",
"domain": "CN",
"filter": {
"enabled": true,
"conditions": [
{ "field": "Weight", "operator": "between", "value": [60, 70] }
],
"logic": "and"
}
}
}
]
}

功能特性

  • 支持按体重、BMI、体脂率等多个指标过滤
  • 支持多个条件组合(AND/OR 逻辑)
  • 每个用户可独立配置过滤规则
  • 向后兼容,不配置则同步所有数据

小米秤数据自动同步到佳明garmin connect

https://bg4vrg.com/post/20260112114148.html

作者

fei

发布于

2026-01-12

更新于

2026-01-12

许可协议

评论