本帖最后由 samhsba 于 2022-10-18 13:41 编辑
aqara的vrf,中弘代工,购于海鲜市场,zigbee版本,通过m1s接入
型号:lumi.airrtc.vrfegl01
ha版本:2022.7.6
本人搜遍全网都无法找到合适的方式能正确的接入ha,尝试过的方式有:
1.aqaragateway
其他类型诸如墙壁开关和各类传感器都能正常识别接入,唯独这个vrf只能生成个基本无用的channel实体,这个实体只体现当前有几台内机,无法生成可用的空调实体,也就无法控制空调开关和调温等.相关issue
2.homekit_controller将m1s反接ha
接入一切正常,可以生成正确数量的空调控制实体.但是,无法启动空调....ha上可以关闭,可以调温,在空调处于手动开启的情况下,也支持制冷和制热模式切换.也就是说,当空调当前处于关闭状态的时候,ha是无法令其启动的,只有外力让空调先启动起来,ha才能对其进行控制.论坛内也有相关讨论,github相关issue
3.XiaomiGateway3/Miio auto
其实这个方式本人没真正试过,因为家里有一些aqara home专属的硬件,不打算切换到米家模式.但是通过查找相关issue 和 miio issue基本确定不支持vrf
4.zha
通过多模网关可以配对成功,但无法生成有用的空调实体,官方适配名单里也没有这个设备
以上个人认为基本是纯zigbee接入ha的所有途径了,均告失败.当然论坛里还有插网线的通过nr来解决的方式,但是在空调内里里面拉根网线或者是放个无线桥接路由的方式,让我实在是没办法接受也没有动力去这么做.
然后昨晚,下定决心熬夜好好看下底层代码,尝试继续通过homekit_controller反接突破.因为只有开启不行,其他功能都正常,估摸着代码可能只是有一丢丢问题.
果不其然,在Homekit_controller文件夹下climate.py找到了相关的代码,通过打印log定位到绿框部分的相关位置:
该文件在容器版的完整路径:/usr/src/homeassistant/homeassistant/components/homekit_controller/climate.py
如果是自行安装的版本,路径应该在:/安装根目录/lib/python3.9/site-packages/homeassistant/components/homekit_controller/climate.py
安装版路径感谢higeek同学的反馈
先是打印了两行日志,发现输出没有任何问题,空调关闭情况下传入的参数也都是正确的,后台也没有任何报错,但设备就是没有任何反应.
然后注意到空调在关闭的时候会调用CharacteristicsTypes.ACTIVE: ActivationStateValues.INACTIVE 这段代码
然后定位到发现除了INACTIVE还有个ACTIVE枚举值
所以盲猜估计是这里是开机状态设置的问题导致的,于是在图一绿框部分加了红色框那行代码 CharacteristicsTypes.ACTIVE: ActivationStateValues.ACTIVE, (不要漏了逗号)
结果怎么着,特么的真的就好了!!!!ha控制完全正常,再反反接入homekit也一切正常,超级完美!!!
昨晚兴奋了一晚,都没睡好,想着早上起来提交个pr吧,虽然就一行代码....
于是开始搭环境pull代码写commit...然后...
发现5天前有个上海的大佬(本人也在上海)已经提交了相关pr,代码改动一毛一样,pr链接在此.
研究了个把月没搞定,然后熬夜看代码搞定了,结果发现人5天前就解决了,这种感觉真的是一言难尽.....
目前这个pr还没被合并,合并后未来这个问题原生就可以解决了.
如果等不及或者已经在用旧版本的同志,就自行修改系统文件,加上这一行代码,问题就迎刃而解了~
|