『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: yxy2888

[硬件DIY] 万家乐热水器接入求助

[复制链接]

6

主题

47

帖子

203

积分

中级会员

Rank: 3Rank: 3

积分
203
金钱
156
HASS币
0
发表于 2023-12-28 21:38:09 | 显示全部楼层
我也有这个需求会的,帮忙发一下教程,为爱发电
回复

使用道具 举报

1

主题

88

帖子

914

积分

高级会员

Rank: 4

积分
914
金钱
826
HASS币
0
 楼主| 发表于 2023-12-29 14:04:53 | 显示全部楼层

我看不懂抓包结果
回复

使用道具 举报

1

主题

5

帖子

34

积分

新手上路

Rank: 1

积分
34
金钱
29
HASS币
0
发表于 2024-1-11 11:19:07 | 显示全部楼层
illxi 发表于 2023-10-6 02:15
我也是。试图抓万家乐ONE+和热水器的包。结果热水器那边基本都抓不到.........  ...

我也试了,热水器控制抓不到包,不是http请求
回复

使用道具 举报

0

主题

3

帖子

30

积分

新手上路

Rank: 1

积分
30
金钱
27
HASS币
0
发表于 2024-1-30 21:39:15 | 显示全部楼层
wangkh5 发表于 2024-1-11 11:19
我也试了,热水器控制抓不到包,不是http请求

我找到办法了,不用绕到云上是局域网控制,TCP协议报文的内容我没办法解开,但是重放关键报文可以实现控制,晚点整理一下思路然后发一下。
回复

使用道具 举报

1

主题

50

帖子

756

积分

高级会员

Rank: 4

积分
756
金钱
706
HASS币
0
发表于 2024-1-30 22:19:08 | 显示全部楼层
ByGPT 发表于 2024-1-30 21:39
我找到办法了,不用绕到云上是局域网控制,TCP协议报文的内容我没办法解开,但是重放关键报文可以实现控 ...

老哥发一下!
回复

使用道具 举报

0

主题

3

帖子

30

积分

新手上路

Rank: 1

积分
30
金钱
27
HASS币
0
发表于 2024-1-31 01:40:51 | 显示全部楼层
本帖最后由 ByGPT 于 2024-2-1 23:24 编辑

用Wireshark发现设备不光广域网可控,通过局域网也是可以的,所以果断研究走局域网的方式。捕获后发现即便是同一种控制,每次数据都不一样。

所幸重放之前的数据并不影响控制效果,但这样的话造成的影响未知、是否存在有效时间等全都是未知,而且根据经验由于设备不同,所以控制数据极有可能不通用,这样的话每个人得抓自己的数据包才能控制。

下面是我的“开机”代码Python写的,需要保证和设备在同一局域网下,可以先ping一下是否通,[192.168.xxx.xxx]是目标设备IP要改,如果不能开机的话,只能到时候开一个教程贴,捕获自己的控制包才行。

额不知道为啥,代码弄上来只有第一行,所以看附件吧
2024-01-31 22时留言:用下来发现并不稳定,有时甚至死机要断电重开,正在排查问题..........
2024-02-01 23时留言:变升功能开始失效,可能是有某种有效期,正在进一步研究中。

-----------
按照惯例上格式条款:本文内容仅为自身分享、日记笔记,不构成判断和指导,文中的提到的包括但不限于电脑操作、软件安装、链接点击等,作者不保证有效性和可能发生的不利后果。

code.zip

620 Bytes, 下载次数: 38

Python代码

回复

使用道具 举报

1

主题

50

帖子

756

积分

高级会员

Rank: 4

积分
756
金钱
706
HASS币
0
发表于 2024-1-31 11:37:14 | 显示全部楼层
ByGPT 发表于 2024-1-31 01:40
用Wireshark发现设备不光广域网可控,通过局域网也是可以的,所以果断研究走局域网的方式。捕获后发现即便 ...

确实不能控制,求老哥再开一个抓包教程 --
回复

使用道具 举报

1

主题

50

帖子

756

积分

高级会员

Rank: 4

积分
756
金钱
706
HASS币
0
发表于 2024-2-3 23:15:53 | 显示全部楼层
ByGPT 发表于 2024-1-31 01:40
用Wireshark发现设备不光广域网可控,通过局域网也是可以的,所以果断研究走局域网的方式。捕获后发现即便 ...

老哥 我抓包没没数据包  基本的数据包我能看懂  但是开关热水器完全是没数据包怎么回事- -抓包用的软件是http catcher
回复

使用道具 举报

0

主题

3

帖子

30

积分

新手上路

Rank: 1

积分
30
金钱
27
HASS币
0
发表于 2024-2-4 00:38:40 | 显示全部楼层
本帖最后由 ByGPT 于 2024-2-7 12:39 编辑
Gen007 发表于 2024-2-3 23:15
老哥 我抓包没没数据包  基本的数据包我能看懂  但是开关热水器完全是没数据包怎么回事- -抓包用的软件是 ...

要用Wireshark抓,它的控制协议是自有的,但是底层是TCP协议,你那个只能抓http协议的,如果想自己抓的话,下面的解读希望对你有帮助。

1. 有一组len为[3、7、0]的数据包,是用来维持心跳的。

2. 每次握手后会有一组[25、9]的数据包,作用未知,但是必须模拟出来,要不然后面的控制数据包发送了也没效果。

3. 控制数据包,大致的形式是[87、55、87、0、71、0.......],我这边第二个87模拟下来能达到控制效果,具体可以自行尝试。

4. 用下来很不稳定,总有莫名其妙的问题,明明是关机(连APP上也显示关机)的但是还能烧水。

5. 上面提到的[3、7、0]这些数字指的是playload(数据载荷)的长度,并且是包括发送和等待响应的,如[3(send)、7(response)、0(send)],send是我发送,response是设备回复的。

6. 可以修改我的代码中的playload25和playload_open,换成你抓到的包尝试。

Snipaste_2024-02-04_00-44-07.jpg
回复

使用道具 举报

1

主题

50

帖子

756

积分

高级会员

Rank: 4

积分
756
金钱
706
HASS币
0
发表于 2024-2-4 18:05:26 | 显示全部楼层
ByGPT 发表于 2024-2-4 00:38
要用Wireshark抓,它的控制协议是自有的,但是底层是TCP协议,你那个只能抓http协议的,如果想自己抓的话 ...

好的 感谢 我学习一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 00:42 , Processed in 0.205313 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表