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

 找回密码
 立即注册
查看: 6151|回复: 40

[新奇玩法] 海信5G中央空调抓包接入HA并打通Homekit

  [复制链接]

14

主题

89

帖子

1053

积分

金牌会员

Rank: 6Rank: 6

积分
1053
金钱
954
HASS币
90
发表于 2022-11-28 13:27:36 | 显示全部楼层 |阅读模式
本帖最后由 hudan717 于 2023-2-24 00:37 编辑

2.24更新
1.修改了一个在线下空调面板上操作时可能导致MQTT状态不同步更新的小BUG,已经在原文的MQTT代码中更新,照搬即可
2.原先NR中是将状态流同统一的节点去分配,可能导致各个空调之间状态发生同步。因此建议大家把每个分机的控制流跟状态流都分开,直接在原来的NR流附件中编辑分离开即可。改成下图这样,节点内容不变,我就不另外上传附件了。
微信截图_20230224001249.png


看下大致效果


GIF.gif

可以注意到,HA上发送指令以后,状态并不是实时更新的,而是需要通过MQTT返回的状态来进行实体的状态变更

以下原文


据说海信是第一家支持直连HomeKit的中央空调厂家,可惜我买的并不是那个型号,也没了解过价格。


这个教程理论上支持所有支持接入“海信Ai享家”APP的空调设备,包括海信的“荣耀家”“Ai家”“别墅家”等等。

设备控制基于MQTT实现,因此如果其他品牌的空调也能通过各自的APP进行远程控制,那么理论上只要修改抓包参数,也能实现相同效果。

开始抓包

打开Stream和海信Ai享家APP
在APP任意发送一个控制指令
微信图片_20221128124217.jpg
随后查看Stream的抓包结果
微信图片_20221128124223.jpg
可以看到只有两种POST,分别是Ctrl跟Status,显而易见一个是发送控制,一个是获取状态
将两种报文都导出,可以看到类似的东西
微信截图_20221128124630.png

红框中的就是最重要的认证密钥,海信使用的是比较原始的Bearer Token。因此可以省去验证,只要不修改APP登录密码,理论上就可以一直用
但是,在成功抓包并在HA运行成功后,非必要,不要重新打开APP进行控制,否则会刷新Token,导致原来抓包来的这个密钥失效,需要重新获取并在Nodered上进行修改!

抓包完成,我们开始配置Nodered跟MQTT
微信图片_20221128125321.png
在Configuration.yaml添加如下代码(上图是我把MQTT单独分开一个文档存到package,正常情况下只要在Configuration中配置即可)
mqtt:
  climate:
    - name: '卧室空调'
      modes:     #空调支持的模式
        - "off"
        - "cool"
        - "dry"
        - "fan_only"
        - "heat" 
        - "auto" 
      fan_modes:    #风力
        - "low"
        - "medium"
        - "high"
      max_temp: 32    #空调最高温度
      min_temp: 16     #最低温度
      mode_command_topic: "/woshikongtiao/mode"       #模式控制,冒号后面的mqtt地址自行修改,以下相同
      temperature_command_topic: "/woshikongtiao/temp"    #温度控制
      fan_mode_command_topic: "/woshikongtiao/fan"               #风力控制
      current_temperature_topic: "/woshikongtiao/tempnow"         #当前室温(如果空调本身由这个功能可以加上)
      fan_mode_state_topic: "/woshikongtiao/fannow"             #当前风力状态,用来进行同步,以下相同
      mode_state_topic: "/woshikongtiao/state"          #当前模式
      temperature_state_topic: "/woshikongtiao/tempstate"        #当前选择的温度


代码是一台内机,有几台就要继续往下加

配置好MQTT,可以先重启一下HA让设置生效,方便接下来在NR中进行调试

来到Nodered
flows.zip (8.71 KB, 下载次数: 67)
将提供的流导入以后,把自己抓包的TXT中的相关参数填入我打#的地方
微信截图_20221128130528.png

其中控制指令中需要自己在ctrllist中进行修改,找到
{"iuIdList":[{"iezCode":"861883……………………这段指令中的"ctrljson":{ xxxxx },更换成对应的指令,即可实现控制

低风:"ctrlJson": { "wind": 1 }
中风:"ctrlJson": { "wind": 2 }
高风:"ctrlJson": { "wind": 3 }
关闭:"ctrlJson": { "onoff": 0 }
打开:"ctrlJson": { "onoff": 1 }
制冷:"ctrlJson": { "mode": 1 }
除湿:"ctrlJson": { "mode": 2 }
送风:"ctrlJson": { "mode": 3 }
制热:"ctrlJson": { "mode": 4 }
温度调节:"ctrlJson": { "temp": 16 }  #温度默认就填写16即可,因为我在流中需要搜索16并替换成你设置的温度来实现控制

在HA中把生成的空调实体接入到homekit,调试无问题后就可以开始使用了,记住,一旦调试通过,没有事情就不要重新打开APP了


这个教程相对比较小众,但是作为抛砖引玉,其他品牌的中央空调如果也能抓到包的话,稍微修改一下流也能实现相同的控制。

帖子写的比较潦草,也没排版,如果有其他问题的话欢迎留言。
总.png

评分

参与人数 4金钱 +51 HASS币 +20 收起 理由
隔壁的王叔叔 + 10 感谢楼主分享!
tianxi2003 + 5
windgo + 16 论坛有你更精彩!
+ 20 + 20 高手,这是高手!

查看全部评分

回复

使用道具 举报

15

主题

302

帖子

2221

积分

金牌会员

Rank: 6Rank: 6

积分
2221
金钱
1919
HASS币
0
发表于 2022-11-28 15:42:36 | 显示全部楼层
谢谢楼主的分享,看来我家的日立空调接入HA的想法能实现了。我家是用i-ezii连接的,也曾给app抓过包,但没有能花精力梳理出接入方案,现在正好可以蹭楼主的成熟方案啦!
回复

使用道具 举报

4

主题

21

帖子

222

积分

中级会员

Rank: 3Rank: 3

积分
222
金钱
201
HASS币
0
发表于 2022-11-28 15:55:47 | 显示全部楼层
同海信荣耀家,刚装完ha,还在摸索,大佬现在就搞定空调了,不用买单独的vrf控制器了
回复

使用道具 举报

37

主题

395

帖子

4060

积分

元老级技术达人

积分
4060
金钱
3610
HASS币
250
发表于 2022-11-28 21:12:50 | 显示全部楼层
这个可以有。回头研究一下我家那破还想冰箱能不能用
回复

使用道具 举报

4

主题

69

帖子

829

积分

高级会员

Rank: 4

积分
829
金钱
760
HASS币
0
发表于 2022-11-28 23:26:03 来自手机 | 显示全部楼层
终于等到大神的方案,赶紧抄作业
回复

使用道具 举报

3

主题

60

帖子

326

积分

中级会员

Rank: 3Rank: 3

积分
326
金钱
266
HASS币
0
发表于 2022-11-29 11:48:25 | 显示全部楼层
这个方案是不是所有海信的智能设备都可以接入了
回复

使用道具 举报

0

主题

13

帖子

72

积分

注册会员

Rank: 2

积分
72
金钱
59
HASS币
0
发表于 2022-11-29 21:51:07 | 显示全部楼层
这个厉害,同理是不是很多设备都可以了
回复

使用道具 举报

3

主题

50

帖子

252

积分

论坛分享达人

积分
252
金钱
202
HASS币
20
发表于 2022-12-1 08:29:07 | 显示全部楼层
cjnt007 发表于 2022-11-28 15:42
谢谢楼主的分享,看来我家的日立空调接入HA的想法能实现了。我家是用i-ezii连接的,也曾给app抓过包,但没 ...

我家也是日立的   不过是接485网关的  app控制是跟智能家居一个app的   有空也试下抓包
回复

使用道具 举报

3

主题

83

帖子

656

积分

高级会员

Rank: 4

积分
656
金钱
573
HASS币
0
发表于 2023-1-3 15:55:17 | 显示全部楼层
谢谢楼主 我家用的是iez 的
回复

使用道具 举报

3

主题

83

帖子

656

积分

高级会员

Rank: 4

积分
656
金钱
573
HASS币
0
发表于 2023-1-3 16:41:32 | 显示全部楼层
微信图片_20230103163424.png 微信图片_20230103163656.png 楼主 我用的是日立智家 抓的数据  麻烦帮我看看设置的对不对  另外 "iuIdList"  这个是在哪里找啊? 找不到 求指教
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-20 20:49 , Processed in 0.066613 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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