本帖最后由 dodojie 于 2018-8-2 17:19 编辑
【引语】
说实话,手里有小米网关用着,原本无须自己diy网关,直到,我入了一个绿米的智能门锁S2,从此就踏入了门锁接入hass的漫漫之路。最终通过这种DIY的第三方网关成功的将门锁接入了hass。至于怎么接入绿米门锁S2,将会在后续教程更新里详细说明,不在本期讨论,本次教程重点教大家如何DIY 第三方zigbee网关。本教程是基于github上的zigbee2mqtt项目,我只是个搬运工,我把源链接附上,大家需要的话,可以自己看。
github项目链接
https://github.com/Koenkk/zigbee2mqtt
【硬件准备】
1、zigbee CC2531 Sniffer USB dongle (必选)
2、zigbee仿真器CC-Debugger
3、zigbee CC2531 烧录线
4、32位win7PC一台(已知本硬件驱动不支持win10,不确定64位win7是否可用,自行测试吧) 赘言:我之前研究github上项目的时候,有介绍说如果没有CC-Debugger的话 ,也可以用esp8266通过刷固件做代理来给cc2531烧录固件。但是,我亲测没用成功,感兴趣的可以自己测试一下。
考虑到CC-Debugger这个硬件是专门用来给cc2531烧录固件的,各位同学可能只需要用到一次,所以你们可以从马云爸爸那里只买一个cc2531模块,然后将模块邮递给我,我免费替你们烧录,但是来回邮费自行承担。这样也可以给那些不会烧录固件的同学减少不少压力。
【烧录固件】(由于附件大小的限制,本教程所有需要用的资源和文件,我都以百度网盘共享链接的形式放在下面)
1、打开名为"swrc045z.zip"的压缩包,安装cc2531的驱动。
2、打开名为"swrc212a.zip"的压缩包,安装CC-Debugger的驱动。
3、打开名为"flash-programmer-1.12.8.zip"的压缩包,安装zigbee模块的烧录程序。
4、将 CC-Debugger ---> 烧录线 ---> cc2531 依次连接好,然后将CC-Debugger和cc2531都插进PC的USB接口(请注意,在cc2531的针脚处会有1和10来标注针脚的顺序,请跟烧录线上的对应好,千万别插错了) 如下图所示:
(, 下载次数: 6)
5、打开刚才安装好的烧录程序SmartRF,在固件镜像处选中名为"CC2531ZNP-Prod.hex"的固件并烧录。
具体选项如图所示:
(, 下载次数: 4)
6、烧录完成。
本文所用到的所有文件通过如下链接自行下载。
【安装zigbee2mqtt】
zigbee2mqtt主要有三种安装方式,第一种是在linux系统环境运行。第二种是通过hassio addon的方式运行。 第三种是在docker环境以容器的方式运行。(其实,第二种和第三种方式差别不大)
因为,我是用的群晖系统做的智能家居平台中枢,所以,在这里,我只说说通过docker的方式运行。其他方式运行,同学们可以自行查阅项目介绍,根据介绍安装。
1、运行如下命令,自动安装并运行zigbee2mqtt容器(amd64架构)
docker run --name=zigbee2mqtt -it -v /your_path:/app/data --device=/dev/ttyACM0 koenkk/zigbee2mqtt
如果你是用的树莓派的话,请自行换成如下命令:
docker run --name=zigbee2mqtt -it -v /your_path:/app/data --device=/dev/ttyACM0 koenkk/zigbee2mqtt:arm32v6
请将"/your_path"换成你自行选择的目录路径,可以随意路径的目录,但不能有权限问题。
2、找到你刚才给"/your_path”替换的路径,打开"configuration.yaml"文件配置mqtt服务器ip地址和用户名密码。
格式如下:
homeassistant: false
permit_join: true
mqtt:
base_topic: zigbee2mqtt
server: 'mqtt://192.168.4.1'
user: XXXXXXX
password: XXXXXXX
serial:
port: /dev/ttyACM0
关于"permit_join: true"这项,我需要说明一下,如果你需要给该zigbee网关添加zigbee设备的话,该项就必须得是"true",
表示允许配对zigbee设备。当你配对添加zigbee设备完成之后,该项就可以改成false,表示不再接受zigbee设备配对加入。
关于"port: /dev/ttyACM0"这项,切记不要改,如果不出意外的话,各位同学的cc2531串口应该都是ttyACM0。
【zigbee设备配对】
配对其实很简单,还是长按小米zigbee设备的各种按键,以启动配对模式。至于其他品牌的zigbee设备,就需要各位自行查找如何启动配对模式了。但是这里需要提醒一点,大家最好能进入docker容器的日志功能,通过实时日志来确认配对成功与否,目前,我亲测的是,经常会一次不能配对成功,需要多次尝试才会成功。
先来一份目前zigbee2mqtt支持的所有zigbee设备列表。打开链接自己看吧
https://github.com/Koenkk/zigbee2mqtt/wiki/Supported-devices
讲到这里,可能有的同学会问了,那那些不支持的zigbee设备也能用吗?答案是,能用。
但是,在列表里没支持的设备,需要大家来做部分修改,以使支持,过程其实挺简单的,本次教程就不说,我会在下一篇教程里,通过将aqara智能门锁S2添加进支持来举例,详细说明怎么添加目前未支持的zigbee设备。
最后,热烈祝贺hass论坛注册人数突破万人大关,山东潍坊发来贺电。值此举国欢腾之际,特发此贴,以示对hass平台的热爱。
|