今天(2025年2月24日),在米家APP中可以看到绑定的日立中央空调在设备列表里显示出来了,这样就可以直接在米家里控制,不像以前只能通过小爱同学语音控制。于是在HA里打开插件Xiaomi Miot Auto 1.0.12配置,其中空调内机的设备实体都在列表里,勾选添加提交,就加到了HA中了。有此好事,下面的教程大家就不用看了。
[attach]68472[/attach]
########### 分割线 ###########
[attach]60082[/attach]
家里空调用的是日立的,其专用i-EZII远程控制器虽然能接入到小度、米家、天猫精灵、华为等智能平台,但就是无法接入到HA,万物HA的乐趣就多了一丝遗憾,真是后悔当初没有下狠心花重金直接入手米家的VRF中央空调控制器或相关兼容产品,那样一步到位就省了后续的折腾,当然可能也就没有今天这篇分享了。
一直在网上搜索i-EZII接入HA方面的资料,用抓包工具查看过【日立智家】的数据,做过一些研究,无奈能力不行、精力也有限,整个项目基本没什么进展。幸运的是,2022年论坛上的一篇帖子海信5G中央空调抓包接入HA并打通Homekit让我看到了项目有望实现的曙光,该帖作者hudan717介绍的是实现海信中央空调接入HA的案例,而日立与海信是两个深度绑定的品牌,从抓包数据上看,实现远程控制的服务器,甚至API接口也几乎是一致的,这就有戏了。
因此,我也就顺理成章地站在巨人的肩膀上实现了日立中央空调接入HA的重大突破,所以,非常有必要特别感谢hudan717所做的探索!虽然时隔两年,但总算完成了,懒癌啊,没办法!
下面就正式进入正文。
日立接入基本原理与海信接入是一样的,区别于hudan717的方案,我在他基础上以模块化的思路精简优化了一些代码,特别是增加了自动更新访问令牌功能,这样就再也不用频繁抓包手动更换token了。
HA配置文件里添加MQTT climate配置代码:
mqtt:
#日立空调配置
climate:
- name: '储藏室空调'
unique_id: chu_cang_shi_kong_diao
modes: #空调支持的模式
- "off"
- "cool"
- "dry"
- "fan_only"
- "heat"
fan_modes: #风力
- "low"
- "medium"
- "high"
max_temp: 32 #空调最高温度
min_temp: 16 #最低温度
power_command_topic: "/ac_00/power" #电源开关,climate.turn_on/off调用需要
mode_command_topic: "/ac_00/mode" #模式控制
temperature_command_topic: "/ac_00/temp" #温度控制
fan_mode_command_topic: "/ac_00/fan" #风力控制
current_temperature_topic: "/ac_00/tempnow" #当前室温(如果空调本身由这个功能可以加上)
fan_mode_state_topic: "/ac_00/fannow" #当前风力状态
mode_state_topic: "/ac_00/state" #当前模式
temperature_state_topic: "/ac_00/tempstate" #当前选择的温度
此处配置代码里各topic定义上要注意几点:
Node-RED里导入以下流程:
[attach]60083[/attach]
[attach]60084[/attach]
[attach]60085[/attach]
[attach]60086[/attach]
上面所示“00 储藏室”“01 次卧”内机控制模块,按自己实际情况添加。
根据自己抓包获取的信息,修改下面所示几个function节点里的数据。抓包技能相信玩HA的终归要自行掌握的,我也就不多啰嗦了。
[attach]60087[/attach]
[attach]60094[/attach]
[attach]60095[/attach]
补充说明:上图中content-length后面的436是按我自己的请求体长度计算的,没有测试字符数是否会影响request,如果提交报失败,需要各位按自己的msg.payload内容重新计算下,或者按“控制指令配置”节点里的代码,用JSON.stringify(msg.payload).length来自动计算。
[attach]60096[/attach]
[attach]60088[/attach]
[attach]60089[/attach]
[attach]60090[/attach]
MQTT In/Out节点里的服务端,要按自己系统配置,主题要按HA里配置代码更改。
[attach]60091[/attach]
几个模块之间,使用link节点连接,按以下总览图恢复:
[attach]60092[/attach]
特别说明下,HA的MQTT Climate集成对于开机控制的机理我还没有完全搞明白,仪表板里,只提供了“关闭、制冷、除湿、送风、制热”几个模式按钮,查了一大堆资料后,只能在控制模块里添加代码变通实现,即判断在模式按钮点击时,如果是关机状态,则先发送开机指令,再发送模式切换指令,这样来实现开机。坛友们有如更好方法,也请多赐教!
[attach]60093[/attach]
本接入方案是在坛友基础上进一步修改完成的,本着共享互助的精神分享到论坛上,也算是对多年来从论坛索取的回报,希望大家能把这样的理念宗旨传递下去,造福广大坛友。
此方案只经过短期的试用,还没有经过长时间的测试,在稳定、安全、合规等方面没有任何承诺。如果在按此方案实现过程中造成任何有形或无形的财产损失、人身伤害,或面临任何法律风险,本人不承担任何责任。
ybcswz 发表于 2024-6-12 11:30
先恭喜楼主。我的是老一代的i-EZ,用不了海信智家,之前也抓过包,因为懒+菜,没有搞定。
我之前在海鲜市场 ...
wuqiyu007 发表于 2024-6-12 15:16
有几个问题问问楼主。运行这个的时候,需要退出APP 吗?
eric 发表于 2024-6-12 15:45
感谢分享!!这个是不是要定时更新token?
cjnt007 发表于 2024-6-12 14:17
老一代的i-EZ控制器就是那个大很多的黑盒子吧,我最开始也是入的这个,1000大洋从海鲜市场淘的,搁置一年 ...
wuqiyu007 发表于 2024-6-14 15:55
搞好了,特别来感谢楼主。
cjnt007 发表于 2024-6-15 13:52
祝贺,自己动手,丰衣足食
cjnt007 发表于 2024-6-19 16:18
这两天看了一些MQTT的技术资料,发现上面分享的方案里还有可以进一步优化精简的地方:
1、可以直接在Node-R ...
wuqiyu007 发表于 2024-6-19 17:06
求精简方案,哈哈哈
cjnt007 发表于 2024-6-21 15:20
首先,把【提取令牌】节点里的代码修改如下(要按自己实际情况对应修改):
注意:原先相关function节点里 ...
onlynull 发表于 2024-7-18 19:30
不会写ha的集成,然后把日立智家app的登录、设备状态获取、控制的api给抓包了,写了个脚本放在nas上,然 ...
onlynull 发表于 2024-7-18 19:30
不会写ha的集成,然后把日立智家app的登录、设备状态获取、控制的api给抓包了,写了个脚本放在nas上,然 ...
onlynull 发表于 2024-7-18 19:30
不会写ha的集成,然后把日立智家app的登录、设备状态获取、控制的api给抓包了,写了个脚本放在nas上,然 ...
砂糖 发表于 2024-7-19 20:21
卧槽 老哥求分享 我家是P1HEQ2的控制器
砂糖 发表于 2024-7-19 20:25
手机里也有stream等抓包软件 奈何小白根本不懂代码 求大哥带带
chaozhao20 发表于 2025-3-1 15:03
米家APP中可以看到绑定的日立中央空调? 我看不到啊,我也是iez的,用的抓包办法,米家绑定日立智家没有设备 ...
chris840903 发表于 2025-5-16 09:22
我对米家app列表添加第三方平台设备非常有兴趣,到底怎么实现的,难道只有日立的可以? ...
cjnt007 发表于 2025-5-16 09:59
米家第三方平台的设备好像不是都能在HA里作为设备或实体列出的,能不能添加到HA里,看我1楼第一段描述的 ...
suk 发表于 2025-7-5 14:32
我的米家加完三方后,ha里显示不出来,这是咋回事啊,求指教。
欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) | Powered by Discuz! X3.5 |