把不在支持列表的新设备接入zigbee2mqtt的方法

我是在树莓派上安装的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系统启动失败。

===============================================================

更新接入方法:

Zigbee2mqtt 升级1.25版本以后,外部转换器的配置方法又变了,之前的配置路径已失效(配置 – 加载项 – Zigbee2mqtt – 配置),有2种新的配置方法如下:

第一种:(推荐此方法,操作最简单)

\192.168.X.X\config\zigbee2mqtt\configuration.yaml
在上面的路径找到configuration.yaml,用记事本打开,把下面的内容复制进去,(注意把xxxx.js改成你自己的文件名称),保存,重启Zigbee2mqtt即生效。

external_converters:

  • roome.js
  • sensor.js
  • switch.js
  • yudun.js

(注意:上面的符号格式上传后,网站自动改了,正确的是 - yudun.js)

第二种:

Zigbee2MQTT – 设置 – 外部转换器

点击右下角的 +
在出现的长框内输入xxxx.js文件的全名
点击 Submit提交 重启即生效。

踩坑提醒:之前我在1.24版本里配置好的设备,升级到1.25版本后,按新方法修改配置,重启后,z2m系统启动失败,502: Bad Gateway,百思不得其解,因为已用此方法测试成功接入部分设备了,操作方法是没问题的,最后经过排查终于发现,是我其中一个设备在1.25版本被z2m官方支持了,我在外部转换器加了一个同样型号的设备引起冲突了,把此设备的配置文件删除,问题解决!

1 个赞

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

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

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


谢谢分享,学习了。

你好,我的8开的开关,是不是也是你这样修改呢?

按照您的方法改了,但是还是显示不支持

我也没有独立配置过这个,你得根据zigbee2mqtt的官网提供的如何添加涂鸦zigbee设备的教程来搞。
你的那个设备是不是涂鸦的设备?

https://www.zigbee2mqtt.io/advanced/support-new-devices/02_support_new_tuya_devices.html#instructions

附件是一个别人写好的涂鸦的人体存在的配置文件,你加压缩打开 ,你参考看看。
ts0601_radar.js.zip (1.7 KB)

不是涂鸦的是roome的

Support new devices | Zigbee2MQTT
点击看看上面的官方文档,应该是有配置文件没有写好,如果写好了,按照道理是可以的。

你好 你这个问题解决了吗

上面const部分按照官方最新文档的改