Zepp Life,为方便说明,后面还是称其为小米运动。但下载注册时请搜索 Zepp Life。Repository access 选择 Only select repositories 勾选自己fork后的仓库,下拉可搜索:输入 mimotion 进行检索Repository permissions 展开菜单,并勾选以下四个权限即可,其他的可以不勾选
Actions Access: Read and write 用于获取Actions的权限Contents Access: Read and write 用于更新定时任务和日志文件的权限Metadata Access: Read-only 这个自带的必选Workflows Access: Read and write 获取用于更新 .github/workflow 下文件的权限Select scopes 勾选 repo 和 workflow 即可Generate token 即可生成token,复制token并自己保存一下以备后续使用,关闭当前页面后将无法再看到它。快捷跳转地址 https://github.com/${你的github用户名}/mimotion/settings/secrets/actions
New repository secret 即可添加SecretPAT 的作用是拿来更新随机执行时间以及加密token数据的,为了保证正常使用,一定要配置正确。AES_KEY。设置之后,程序会用这个密钥把各个账号的登录token信息加密保存起来。请一定保管好你的密钥,不要泄露。AES_KEY 后,运行时可能会看到提示:“密钥不正确或者加密内容损坏 放弃token”,这是正常现象。因为原来加密文件用的是我的密钥,和你设置的不同,所以会提示不匹配。你直接忽略它,等程序运行完后,就会用你的新密钥生成一份新的加密文件,下次运行就正常了。AES_KEY 后,每个人的仓库里面到会保存一份 encrypted_tokens.data。每次更新代码时,这个文件会被覆盖。为了避免丢失你保存的信息,请在更新代码前备份这个文件,等代码更新完,再把它放回仓库并提交,最后重新运行workflow。CONFIG的内容:
{
"USER": "abcxxx@xx.com",
"PWD": "password",
"MIN_STEP": "18000",
"MAX_STEP": "25000",
"PUSH_PLUS_TOKEN": "",
"PUSH_PLUS_HOUR": "",
"PUSH_PLUS_MAX": "30",
"PUSH_WECHAT_WEBHOOK_KEY": "",
"TELEGRAM_BOT_TOKEN": "",
"TELEGRAM_CHAT_ID": "",
"SLEEP_GAP": "5",
"USE_CONCURRENT": "False"
}
| 字段名 | 格式 |
|---|---|
| USER | 小米运动登录账号,仅支持小米运动账号对应的手机号或邮箱,不支持小米账号 |
| PWD | 小米运动登录密码,仅支持小米运动账号对应的密码 |
| MIN_STEP | 最小步数 |
| MAX_STEP | 最大步数,最大步数和最小步数随机范围随着时间线性增加,北京时间22点达到最大值 |
| PUSH_PLUS_TOKEN | 推送加的个人token,申请地址pushplus,工作流执行完成后推送每个账号的执行状态信息,如没有则不要填写 |
| PUSH_PLUS_HOUR | 限制只在某个整点进行pushplus的推送,值为整数,比如设置21,则只在北京时间21点XX分执行时才进行pushplus的消息推送。如不设置或值非数字则每次执行后都会进行推送 |
| PUSH_WECHAT_WEBHOOK_KEY | 企业微信推送通知的key,企业微信webhook机器人推送全地址为:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={机器人的key},这里配置{机器人的key} |
| PUSH_PLUS_MAX | 设置pushplus最大推送账号详情数,默认为30,超过30个账号将只推送概要信息:多少个成功多少个失败。因为数量太多会导致内容过长无法推送。具体最大值请自行调试 |
| TELEGRAM_BOT_TOKEN | 设置telegram机器人的token,同时需要配置TELEGRAM_CHAT_ID,否则不会执行推送 |
| TELEGRAM_CHAT_ID | 设置telegram的chatId,需要同时配置TELEGRAM_BOT_TOKEN,否则无法执行推送。关于这两个值如何获取,请前往官网查看。 |
| SLEEP_GAP | 多账号执行间隔,单位秒,如果账号比较多可以设置的短一点,默认为5秒 |
| USE_CONCURRENT | 是否使用多线程,实验性功能,未测试是否有效。账号多的可以试试,将它设置为True即可,启用后 SLEEP_GAP 将不再生效 |
{
"USER": "13800138000#13800138001",
"PWD": "abc123qwe#abcqwe2",
"MIN_STEP": "18000",
"MAX_STEP": "25000",
"PUSH_PLUS_TOKEN": "",
"PUSH_PLUS_HOUR": ""
}
CRON_HOURS 的Variables变量 Settings-->Secrets and variables-->Actions-->New repository variables 注意不是Secret-
快捷跳转地址 https://github.com/${你的github用户名}/mimotion/settings/variables/actions
- 填写自动执行的时间,单位为小时,此处需要设置UTC时间,例如设置 0,2,4,6,8,14 则会在北京时间 8,10,12,14,16,22 点触发执行
Random Cron 来触发替换,或者等下一次定时执行时它将会自动替换。分 小时 日期 月份 年份github actions中执行时间为UTC时间,即北京时间-8,如果需要每天8,10,12,14,16,22
点执行,则设置cron为0 0,2,4,6,8,14 * * *
on:
schedule:
- cron: '0 0,2,4,6,8,14 * * *'
注意 如果已添加 CRON_HOURS 变量,则修改此文件的cron表达式会失效,在下次执行 Random Cron
后表达式中小时的部分会被覆盖为 CRON_HOURS 配置的值
刷步数
,快捷链接:https://github.com/${你的github用户名}/mimotion/actions/workflows/run.ymlI understand my workflows, go ahead and enable them
启用,然后左侧选择 刷步数 之后,再点击 enable workflow 启用工作流。请确保开启工作流,否则不会定时执行。Run workflow触发执行,触发后刷新即可查看执行记录。验证是否正确配置并执行刷步数。本项目基于 https://github.com/xunichanghuan/mimotion(已被ban)
和 https://github.com/huangshihai/mimotion 项目修改,特此感谢
新版本登录需要加密,感谢https://github.com/hanximeng/Zepp_API/blob/main/index.php 里面提供的aes加密密钥。大家可以去给作者点个star
Sync fork,找不到的话直接Ctrl+F网页查找Update branch 或者 Discard xxx commits等待同步完成即可,如有其他提示请自行按提示操作。请不要提交 pull requestAES_KEY 之后,因为每个人的仓库里面到会保存一份 encrypted_tokens.data,更新代码会被覆盖。为了避免数据丢失,请提前备份,在更新完成后将它重新提交到仓库中,然后再触发workflow。INSPECT_WECHAT_HOOK_KEY 配置企业微信机器人的key,具体请参考企业微信机器人文档。INSPECT_TELEGRAM_BOT_TOKEN和INSPECT_TELEGRAM_CHAT_ID 配置机器人的token和聊天chatId,具体请参考TelegramBot文档。提取配置信息 手动运行它,运行成功后,将配置信息发送到企业微信或telegram中。企业微信或者telegram的推送自己按需选择,如果都不配置,请使用日志打印的方式。INSPECT_AES_KEY 注意是16位的字符串,请勿使用弱密码,避免被人猜到。
CRON_HOURS Variable变量,则脚本将自动判断,例如8:05分执行后,将从小时中剔除8,即8:00-8:59都不会再重复执行,避免随机的步数混乱。多账户的数量和密码请一定要对上 不然无法使用!!!
启动时间得是UTC时间!
如果支付宝没有更新步数,到小米运动->设置->账号->注销账号->清空数据,然后重新登录,重新绑定第三方。建议去开头提到的网站测试账号是否正常
小米运动不会更新步数,只有关联的会同步!!!!!
请各位在使用时Fork当前仓库,防止出现不必要的bug.
请注意,账号不是 [小米账号],而是 [小米运动/ZeppLife] 的账号。
最大步数和最小步数随着时间增长,10点执行时范围为10/22 * 18000 ~ 10/22 * 25000:8181 ~ 11363,以此类推,在北京时间22点达到最大值,即22点执行时随机步数的范围为18000-25000之间。要修改这个范围可以修改CONFIG中的MIN_STEP和MAX_STEP。
cron的执行根据github actions的资源进行排队,并不是百分百按指定的时间进行运行,请知悉。
新版本接口有限制,同ip登录过多账号可能会429,请自行测试。
刷步数 #41: Scheduled 代表是定时任务触发,刷步数 #33: Manually run by xxx 代表手动触发刷步数 为例:
Jobs 可以查看到一个 build ,点击它查看执行步骤开始 ,点击 开始 展开详情Random Cron,它会在 刷步数 执行成功后触发,执行后会更新cron表达式创建随机的分钟值,然后提交到git仓库。这一步失败的主要原因有:
PAT Secret变量,也就是个人token设置的不正确CRON_HOURS Variable变量设置的不正确,需要逗号分隔的小时字符串例如:1,3,4,5,6,7 。不要添加奇奇怪怪的东西cron_change_time 文件的内容,记录了触发方式、当前触发时间、cron表达式信息、下一次定时触发时间等信息,示例如下:
trigger by: workflow_run
current system time:
UTC: 23-06-03 12:56:53
北京时间: 23-06-03 20:56:53
current cron:
UTC时间: '48 1,4,7,10,12,14 * * *'
北京时间: '48 9,12,15,18,20,22 * * *'
next cron:
UTC时间: '37 1,4,7,10,12,14 * * *'
北京时间: '37 9,12,15,18,20,22 * * *'
next exec time: UTC(14:37) 北京时间(22:37)