小灰 发表于 2018-12-20 19:29:19

斐讯体脂称S7阉割版插件

本帖最后由 小灰 于 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,如果其他手机,可以获取到更详细的信息。
第二步,下载
解压后放到/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。
以上只是最简单的实现了功能,具体的需要哪些数据可以自己修改代码

static/image/hrline/5.gif
我是分割线
static/image/hrline/5.gif

接下来就是探讨一下该怎么改进了,大佬请留步,小白请围观。

模拟登陆的问题,能力有限,大佬们有空整一下吧。个人觉得每次查询都要登录一次,频率有点高,可能不太好,最好是启动的时候登陆一次,获取到memberId 和 userId,保存在某一个地方就可以了,当然这个我不会。


我看囧大爬了 token,这个现在好像不需要了,还有phicomm_screen_dataphicomm_claim_data等方法,都没必要
通过 def phicomm_get_data(self):方法可以得到一系列信息了,如果还要更详细的,就通过def phicomm_get_detail(self): 获取,不需要headers就可以得到json数据。


还有,我不知道写成那个标准的sensor格式的咋整,lidicn大佬的教程我也(暂)没(时)有(看)细(不)看(懂),根据囧大写的斐讯体脂称S7插件改了之后,不能运行,也不知道哪里错了,有大佬可以帮忙看看。

最后,多谢囧大的插件,没有那个插件,校验key我不可能搞的出来。
最最最最最后,python现学的,大佬勿喷

static/image/hrline/3.gif
完结,撒花

static/image/hrline/3.gif










新生活 发表于 2018-12-20 19:35:51

现学就这么厉害,6666

小灰 发表于 2018-12-20 19:39:23

新生活 发表于 2018-12-20 19:35
现学就这么厉害,6666

我会其他编程,python基础都还没看完,结合廖雪峰和崔庆才两位大佬的教程做的,所以才会有的东东看不懂,瞎整

发表于 2018-12-20 19:46:45

发现玩这个的还挺多,我写完自己都不用了:'(

小灰 发表于 2018-12-20 19:48:17

有时候还是会出错,等大佬出手吧

小灰 发表于 2018-12-20 19:50:18

Jones 发表于 2018-12-20 19:46
发现玩这个的还挺多,我写完自己都不用了

大佬,就等你出手了,我把你的代码改的不成样子了,你要不要再改改:lol

发表于 2018-12-20 19:55:57

小灰 发表于 2018-12-20 19:50
大佬,就等你出手了,我把你的代码改的不成样子了,你要不要再改改

要再改也是改成离线版,也就是像M1一样劫持它的数据,直接读取。。。不过我是没空弄,你抓抓秤上传的数据?(注意不是app获取数据)

花蟋蟀 发表于 2018-12-20 20:09:21

Jones 发表于 2018-12-20 19:55
要再改也是改成离线版,也就是像M1一样劫持它的数据,直接读取。。。不过我是没空弄,你抓抓秤上传的数据 ...

py各种白,只能默默的静等:lol

小灰 发表于 2018-12-20 20:10:01

Jones 发表于 2018-12-20 19:55
要再改也是改成离线版,也就是像M1一样劫持它的数据,直接读取。。。不过我是没空弄,你抓抓秤上传的数据 ...

这个我正在折腾,路由器tupdump抓到了数据,准备用wireshark看一下,这个不会,都是在找教程折腾瞎搞

发表于 2018-12-20 21:57:02

小灰 发表于 2018-12-20 20:10
这个我正在折腾,路由器tupdump抓到了数据,准备用wireshark看一下,这个不会,都是在找教程折腾瞎搞
...

加油!
页: [1] 2 3 4 5 6
查看完整版本: 斐讯体脂称S7阉割版插件