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

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

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

[复制链接]

1

主题

88

帖子

916

积分

高级会员

Rank: 4

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

谢谢大佬分享,经过我的使用,我用的最多的是单次零冷水。
回复

使用道具 举报

1

主题

27

帖子

132

积分

注册会员

Rank: 2

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

感谢,按照你的方法可以控制了,再配合巴法云和Homeassistant,nodered,已接入米家,实现语音开启零冷水
回复

使用道具 举报

0

主题

3

帖子

32

积分

新手上路

Rank: 1

积分
32
金钱
29
HASS币
0
发表于 2024-4-16 16:56:43 | 显示全部楼层
13450224207 发表于 2024-2-22 08:57
感谢,按照你的方法可以控制了,再配合巴法云和Homeassistant,nodered,已接入米家,实现语音开启零冷水 ...

你好,请指导下。万家乐热水器的APP里面找不到mac地址,如何确定哪个IP是热水器的呢?
回复

使用道具 举报

0

主题

3

帖子

32

积分

新手上路

Rank: 1

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

您好,本人小白。请问下192.168.31.100是手机的ip吗?192.168.31.200是热水器的IP?
回复

使用道具 举报

1

主题

88

帖子

916

积分

高级会员

Rank: 4

积分
916
金钱
828
HASS币
0
 楼主| 发表于 2024-4-18 13:40:50 | 显示全部楼层
13450224207 发表于 2024-2-22 08:57
感谢,按照你的方法可以控制了,再配合巴法云和Homeassistant,nodered,已接入米家,实现语音开启零冷水 ...

大佬,分享一下接入方法呀
回复

使用道具 举报

1

主题

27

帖子

132

积分

注册会员

Rank: 2

积分
132
金钱
105
HASS币
0
发表于 2024-5-24 09:03:05 | 显示全部楼层
xuehui_77 发表于 2024-4-16 16:56
你好,请指导下。万家乐热水器的APP里面找不到mac地址,如何确定哪个IP是热水器的呢? ...

我没有太好的办法,不过我家里路由的设备都是设的静态IP,逐一理清每个ip是什么设备并在路由上起好别名就可以找到哪个是热水器
回复

使用道具 举报

1

主题

27

帖子

132

积分

注册会员

Rank: 2

积分
132
金钱
105
HASS币
0
发表于 2024-5-24 09:12:45 | 显示全部楼层
yxy2888 发表于 2024-4-18 13:40
大佬,分享一下接入方法呀

具体方法就是按29楼的方法抓包,我用的是星耀X32pro的网络诊断里面的抓包工具,抓路由器LAN口的TCP包,抓完放wireshark分析,按29楼的方法按顺序发3个包就可以控制启动零冷水了,之后把发包的功能打包成python脚本放HA里面作为脚本功能,然后在Nodered里面连接脚本和巴法云,巴法云再连米家(确实很绕,全程启动起来大概花费3秒),当然也可以想办法用其他办法启动这个python脚本,反正启动了就能零冷水了. 目前大概使用一两个月会过期一次得手动更新一下最后一个87长度的包.
回复

使用道具 举报

0

主题

7

帖子

62

积分

注册会员

Rank: 2

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

大佬您好,我尝试了使用Wireshark抓包,但Wireshark仅在我笔记本电脑本地,我目前已知万家乐热水器在局域网的IP地址,我要怎么配置Wireshark来开启抓局域网其他机器的包呢?
回复

使用道具 举报

0

主题

7

帖子

62

积分

注册会员

Rank: 2

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

大佬,经过反复的测试,我发现我还是不能成功,目前抓包是抓到了四个发出去的包的,按您的方法来模拟各种的不成功。不知道问题出在哪儿现在。虚心求教帮我看看~

前两个包是点击待机按钮的,后两个包是点击零冷水按钮的。目前跑完没有返回值,热水器也没有任何反应,求大佬们帮忙看看:

现在代码:
wanjiale.zip (1.21 KB, 下载次数: 5)

<div class="blockcode"><blockquote>import socket
import time

class Wanjiale:
    def __init__(self, ip, port):
        # 创建套接字对象,进行TCP连接
        self.tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.ip = ip
        self.port = port
        self.server_address = (ip, port)
        self.tcp_socket.connect(self.server_address)
    def send_data(self, data):
        '''发送所需的数据'''
        payload = bytes.fromhex(data)
        self.tcp_socket.send(payload)
        response = self.tcp_socket.recv(1024)
        return response

    def close(self):
        '''关闭连接'''
        self.tcp_socket.close()

if __name__ == '__main__':
    # TCP数据载荷
    # len: 87
    open_data1 = 'aabb1100120050831186ec120f228fa7122007211b6e411b9b55a8327a87b2eac97af267c0ddb935989f42ce010a9eead64027a800e526810974579b8502efb932a9fb60b75b2a1d22d1ca5d84ac72b915bf745ed6a520'
    # len: 103
    open_data2 = 'aabb1100a10060da3d2c9f6100b1db77b42d5806d8aa91dbf152e085bcf9f1de37d79159294299fdf6a3b4aa208fe1399f27858f4344a3f1d3f4d26c76e0ab81e0f8daa95254d89d2f7d3b025e7f3ddfd886b5fd3a8bf6a42c39253b936067b4eb1688228e7d44'

    # len: 87
    open_data3 = 'aabb1100470050edfb116b8f410efdaed5a855daef8a81fc709740e5e1cfb0825a529b31a5d626598d91c0531679a4ca6327444f8e93c0520b8db763349ace3bf4cf39fb50fce3adaa9991dd1f6ec73b70a796f485d7bb'
    # len: 190
    open_data4 = 'aabb11007f00504a82630c8ee49d52a26ef489fddd00fd4ab63ad13fd350a51ff77c6facfcada9bc32101f0e7f0677733078319dbf63bdee3c688bd0a14cfcdbf39c1b6b2c5a980ac2b2b019ecd7521370b99727e47138aabb1100a300604feafe5e61b80a70f2edfc6d0602d9894f615e7ea1ba7a9cd70c637b1bced3113cab31a6b8e1464c91a801f1e19c40f1fa31808055c55c72a3d931f2bda71fc85429d9f1717308ea88c4ed7860703f204e1523b28349765541de08af29b732ea'


    wanjiale = Wanjiale('192.168.3.245', 7681)
    response1 = wanjiale.send_data(open_data1)
    print(response1)
    time.sleep(1)
    response2 = wanjiale.send_data(open_data2)
    print(response2)
    time.sleep(3)
    response3 = wanjiale.send_data(open_data3)
    print(response3)
    time.sleep(1)
    response4 = wanjiale.send_data(open_data4)
    print(response4)
    time.sleep(1)

    wanjiale.close()



筛选条件:
ip.addr == 192.168.3.7 && ip.addr == 192.168.3.245

192.168.3.7 是 我雷电模拟器的IP,192.168.3.245 是 热水器的IP

取了 序号 151、155、352、356 四个包的数据来写入代码中。(但结果是啥反应也没有)

此次抓包数据:
抓包202408152231.zip (66.77 KB, 下载次数: 5)
回复

使用道具 举报

4

主题

29

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
金钱
205
HASS币
0
发表于 2024-10-22 11:12:00 | 显示全部楼层
13450224207 发表于 2024-2-22 08:57
感谢,按照你的方法可以控制了,再配合巴法云和Homeassistant,nodered,已接入米家,实现语音开启零冷水 ...

求助大佬指导,有偿,我只想接入homeassistant,不需要米家不需要语音开启零冷水,只想接入homeassistant加个按钮本地一键控制和在homeassistant的Node-RED里面定时控制开启
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-23 21:52 , Processed in 0.086807 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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