本帖最后由 qiaoqiao1235 于 2023-10-30 09:53 编辑
背景:
1.HA默认的homekit bridge插件目前还不支持空气净化器接入,接入homekit后会显示为风扇
关于这个问题可以参考我这个帖子
空气净化器接入homekit - 『HomeAssistant』综合讨论区 - 『瀚思彼岸』» 智能家居技术论坛 - Powered by Discuz! (hassbian.com)
2.HA默认的homekit bridge插件会将默认的插座显示成开关,如果需要在homekit中显示为插座,需要手动添加配置
参考配置:在custom_components新建homekit.yaml,并编辑
- name: outlet_accessory
mode: accessory
port: 21063
filter:
include_entities:
- switch.649e3171e662_plug
entity_config:
switch.649e3171e662_plug:
type: outlet
或
- name: outlet_bridge
port: 21065
filter:
include_entities:
- switch.649e31713436_plug
entity_config:
switch.649e31713436_plug:
type: outlet
在configuration.yaml添加:
homekit: !include homekit.yaml
对于怕麻烦或者强迫症来说不是很友好
想法&实现:
1.实现了空气净化器默认接入正确显示,关联温度/湿度/pm2.5传感器
2.实现了插座类型默认接入正确显示
步骤:
1.下载附件homekit_modified.zip,解压得到homekit文件夹,拷贝到HA的custom_components目录下
homekit_modified.zip
(238.5 KB, 下载次数: 21)
-custom_components
-homekit
(HA支持修改默认插件,可以将同名插件放到custom_components下即可)
2.删除原有通过homekit bridge插件接入的这两种类型的设备(不是删除HA中,只需要在homekit bridge插件中去勾选即可),使其在homekit中消失
3.重启HA
4.在homekit bridge重新选择这两种设备,并添加到homekit中,可以看到设备类型已经正确了
注意:
1.本修改基于2023.10.5(截至发帖前的最新版),插件有部分依赖,老版本可能不支持。需要自行同步代码,参考下面的修改方法
2.修改了依赖需求,HA升级后理论上可以兼容,如不兼容,需要自行同步代码,参考下面的修改方法
3.恢复方法:删除custom_components中的homekit,并重启HA,如提示异常,可尝试硬重启
修改方法:
1.下载附件并解压
2.根据当前版本下载官方homekit
如2023.10.5
core/homeassistant/components/homekit at 2023.10.5 · home-assistant/core (github.com)选择版本:
下载代码:
找到对应目录:
\core\homeassistant\components\homekit
使用对比工具进行修改:
空气净化器适配:
插座适配:
插件适配:
3.修改完成后替换custom_components中的插件即可
备忘:
1.用户自定义插件差异
用户自定义插件与官方插件不同,官方插件的manifest.json不需要定义version,自定义插件需要定义这个字段,所以要增加这个字段
homekit bridge依赖采用指定版本的方式(我觉得影响不大),这块为了兼容处理,做了一些修改,参考上面的插件适配
2.关于PR
homekit bridge提交要求代码测试用例覆盖100%,空气净化器的修改测试用例覆盖率不够,希望有人有时间可以补充下然后提一个PR,我这边短时间内没时间做这件事。
插座那个修改我觉得官方可能不一定会接受,毕竟现在的更灵活一点,虽然我觉得我的修改更合规范一点……
效果图:
|