如何把不在支持列表的设备接入zigbee2mqtt

前几天看到 robot版主 写的《home-assistant智趣盒子对接第三方zigbee设备的教程–zigbee2mqtt》,写得很好很详细;其中提到如何把不在支持列表的设备接入zigbee2mqtt,刚好我前段时间折腾过这方面的zigbee设备并搞定了,现在把这部分的内容补充上。

我是在树莓派上安装的hassio,在加载项商店安装的zigbee2mqtt add-on,这种插件安装方式不能通过修改devices.js文件来支持新设备,要通过外部转换器的方式来支持新设备,当时zigbee2mqtt官方文档也没写得很清楚,我也是踩了不少坑才搞定的,现把配置方法分享总结如下:

1、把新设备配对接入z2m网关后,只要 Model 这一栏能识别出设备的型号,就能继续进行下面的修改配置文件,完成设备的识别和接入。有部分设备如果这一栏是空白的,就不能通过修改配置文件接入了;还有部分设备进入配对状态后,完全不能被z2m网关检测到,没有任何反应。后2种情况的设备只能通过刷入大神专门定制的固件才能救活并接入z2m网关了。

2、根据待接入设备的类型,把我上传附件提供的几种常用zigbee设备的配置文件模板简单修改下就行了。除说明的地方外,其他地方不要改动。
Zigbee设备配置文件模板.rar (67.2 KB)

zigbeeModel: ['ZHA-DoorLockSensor'],------------Model栏识别出的设备型号
model: 'ZHA-DLS',                   ------------设备型号,自己随意
vendor: 'LDS',                      ------------厂家或品牌,自己随意
description: '门锁传感器',          ------------功能描述,自己随意
fromZigbee: [fz.ias_contact_alarm_1],
toZigbee: [],
exposes: [e.contact(), e.battery_low(), e.tamper()],

如果你的设备支持显示电量百分比,就要在exposes: []里加入e.battery(),

至于其他不常用的设备,要写配置文件,就要先到z2m官方支持的设备页面查询和你的设备同类型的设备型号,然后打开devices.js文件并找到这个型号,把配置信息代码复制出来再自己修改即可。

3、把修改好的配置文件复制到以下位置,\192.168.x.x\config\zigbee2mqtt
注意:文件名要英文的,名称自己随意,不重复就行。

快照4

4、修改Zigbee2mqtt的配置文件,Supervisor – Zigbee2mqtt – 配置

快照5

如上图修改好后,点击保存–重启加载项,重启Zigbee2mqtt后就大功告成了。

从下图可以看到,Manufacturer 这一栏由 Unsupported 变成你修改的制造商品牌,就表示配置成功了。

特别提醒:

如果配置文件里的配置信息代码不正确,会导致z2m系统启动失败,比如有个别设备的配置信息,在devices.js里能正常识别,但在external_converters里因为缺少几行配置信息代码,就导致z2m系统启动失败了,502: Bad Gateway。

快照8

如果上述原因导致z2m系统启动失败,又无法修改正确的配置信息,那就只能把xxxx.js文件里新增的配置信息删除,或删除external_converters下新增的 - xxxx.js 字段了,然后重启Zigbee2mqtt即可恢复正常。

可以根据不同类型的设备,创建几个不同的xxxx.js配置文件,以方便设备的管理。需要注意的是,只有一个设备的配置文件和多个设备合一的配置文件的代码格式是有区别的,具体看我上传的附件配置模板,搞错了也会导致z2m系统启动失败。

感谢教程,正好需要,有空回家试试

请直接以官方文档为准:https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html

请问,这种情况是不是要刷大佬的固件才能接入?方便给个下固件,刷固件的教程吗?


谢谢分享,学习了。