本帖最后由 小灰 于 2018-12-20 19:44 编辑
在论坛灌了好久的水,大佬Jones还助力了十分,终于够权限下载了他发布的 斐讯体脂秤S7插件 for HomeAssistant,配置好之后不能用,但是服务器有没有问题,可能哪里有改动了吧,大佬太忙也顾不上去维护,最后就自己折腾可以获取到体重信息了。用到的东东有 Charles,command_line等,先上图看一下。
请注意,我是渣渣,很多东西不会,以下都是根据大佬的帖子里的代码修改,再加上自己瞎折腾的,各位大佬看了之后,希望能帮忙完善一下。
第一步:获取 memberId 和 userId
不知道是手机证书问题还是啥,抓包的时候,一直无法登陆,这样就不知道如何用python去登录,所以,这两个参数只能用傻办法,抓包获取。
首先,就是Charles下载安装,然后安装证书,这个网上有很多教程,我随便放一个,你们参考下。
手机和电脑要在一个局域网内,wifi要设置代理,服务器主机名是你运行Charles的电脑的ip,端口8888
手机电脑等都设置好之后,打开斐讯健康app,Charles软件左侧就会出现很多链接
如图所示,我这个手机是安卓8.0的,证书有问题,很多消息都是unknown,按照我框选的就可以得到memberId 和 userId,如果其他手机,可以获取到更详细的信息。
第二步,下载
Phicomm_S7.zip
(939 Bytes, 下载次数: 165)
解压后放到/custom_components/sensor文件夹下,把里边的user_id = xxxxxxx和member_id = xxxxxxx修改成你第一步获取的。
第三步,修改配置文件
在sensor下添加如下代码
- platform: command_line
name: Phicomm_S7
command: "python3 /config/custom_components/sensor/Phicomm_S7.py"
scan_interval: 120
command_timeout: 30
我的是Docker下安装的Hassio,所以,路径有不一样,其他的根据实际情况,修改路径。
设置了command_timeout是因为有时候可能爬的时间过长,而默认是15S,所以,改长一点。好了,到这一步应该就可以用了,记得重启HASS。
以上只是最简单的实现了功能,具体的需要哪些数据可以自己修改代码
我是分割线
接下来就是探讨一下该怎么改进了,大佬请留步,小白请围观。
模拟登陆的问题,能力有限,大佬们有空整一下吧。个人觉得每次查询都要登录一次,频率有点高,可能不太好,最好是启动的时候登陆一次,获取到memberId 和 userId,保存在某一个地方就可以了,当然这个我不会。
我看囧大爬了 token,这个现在好像不需要了,还有phicomm_screen_data phicomm_claim_data等方法,都没必要
通过 def phicomm_get_data(self): 方法可以得到一系列信息了,如果还要更详细的,就通过def phicomm_get_detail(self): 获取,不需要headers就可以得到json数据。
还有,我不知道写成那个标准的sensor格式的咋整,lidicn大佬的教程我也(暂)没(时)有(看)细(不)看(懂),根据囧大写的斐讯体脂称S7插件改了之后,不能运行,也不知道哪里错了,有大佬可以帮忙看看。
phicomm_balance.zip
(2.15 KB, 下载次数: 93)
最后,多谢囧大的插件,没有那个插件,校验key我不可能搞的出来。
最最最最最后,python现学的,大佬勿喷
完结,撒花
|