本帖最后由 27hh 于 2021-3-27 23:39 编辑
一直以来,zigbee2mqtt + Zigbee USB 适配器是将 Zigbee 设备接入 Home Assistant 的主流方案之一。因此,现有的大量教程都是讲解此类接入方法,很多小白也不明就里地跟随着配置,结果又遇到很多问题。
实际上,对于将 Zigbee 适配器直接连接在 Home Assistant 运行环境的情况,ZHA 可能是你的更优选择。
什么是 ZHA?
ZHA 是 Home Assistant 自带的 Zigbee 集成,它与 Zigbee 适配器通信,将 Zigbee 接入 Home Assistant。
ZHA 与 zigbee2mqtt 的相同之处是什么?
- 它们都可以让你摆脱设备厂商网关的束缚,将 Zigbee 设备直连接入 Home Assistant。
- 它们都提供了简单的操作方式,使没有计算机基础的人也能优雅地接入并使用设备。
- 它们都有网络可视化工具,将你的 Zigbee 网络以直观的图形展示出来,方便你了解设备的信号情况、中继节点等信息。
- 它们都有活跃的社区,代码都在积极维护。
ZHA 与 zigbee2mqtt 的区别是什么?
- ZHA 基于 python(与 Home Assistant 相同),而 zigbee2mqtt 基于 Node.js。
- ZHA 是 Home Assistant 自带的组件,而 zigbee2mqtt 是第三方应用程序,也可用在 Home Assistant 以外的平台。
ZHA 相比 zigbee2mqtt 的优势在哪里?
- ZHA 基于 python,也就是说,与 Home Assistant 运行在同一平台。这样,你就不需要再去安装 Node.js 了,它的运行环境在你安装 Home Assistant 时就已经配置好了。
- ZHA 是 Home Assistant 自带的组件,因此你连安装它的过程都是不需要的,它已经躺在“集成”列表中等你了。
- 正因为 ZHA 是 Home Assistant 自带的组件,所以也获得了与 Home Assistant 更佳的集成性,它拥有一个“配置”界面,在这里你可以直接添加新设备、管理和删除设备、甚至图形化查看设备网络,并通过点击网络直接跳转到某个设备。
- ZHA 采用了 zigpy 的库,它同样基于 python,并且支持比 zigbee2mqtt 更多的协议(简单说来就是可以连接更多种类的 Zigbee 收发器,甚至是小米多模网关)。
ZHA 的劣势在哪里?
- ZHA 更适合将 Zigbee 适配器直接连接在 Home Assistant 服务器上的情况,而 zigbee2mqtt 可以将另外一台联网设备作为 Zigbee 适配器,然后通过网络发送到 Home Assistant 服务器。(当然,你也可以通过网络使用 ZHA,使用 socat 等工具即可,例如小米多模网关的 ZHA 模式。)
- ZHA 编写 devices.js 的方式比 zigbee2mqtt 麻烦一些,所以冷门设备的适配比 zigbee2mqtt 要慢一些。(当然如果你会写代码,这就不是问题)
综上,我个人的建议是:如果你不是使用 Node-RED 等工具的发烧型用户,并且你的 Zigbee 网络规模不大(少于 15 个设备),建议仔细考虑选择哪个平台。正所谓“如非必要,勿增实体”,单为了几个 Zigbee 设备而安装 Node.js 平台,然后再在其上安装一个第三方程序,其实并不是很划算的事情。现阶段 ZHA 支持了市面上的主流设备(包括但不限于小米、涂鸦),并且配置 ZHA 只需点击几下鼠标。如果你想选择 ZHA,请继续往下看...
如何配置 ZHA?
- 把 Zigbee 适配器插在 Home Assistant 服务器上。
- 进入“集成”页面,点击“添加集成”,在搜索框中输入“ZHA”,在下方选择“Zigbee Home Automation”。
- 在接下来的下拉菜单中,选择你的zigbee适配器(通常只有一个),然后点击提交。
- 稍等片刻,集成自动配置完成。
- 点击“ZHA”集成的“配置”,右下角“ADD DEVICES”,进入添加子设备状态,按照设备说明书的指示,使设备配网即可。
我已经在使用 zigbee2mqtt,要不要考虑迁移到 ZHA?
不建议。这一文章旨在让新人接入设备时能多一种选择。迁移到 ZHA,需要你重新配对所有设备。如果你的 Zigbee 网络在稳定运行,无需考虑迁移。
我为什么从 zigbee2mqtt 迁移到了 ZHA?
- zigbee2mqtt 在添加新设备时默认以 IEEE 地址命名,这对用户来说是一段无意义且难以辨认的字符串,在添加多个设备并命名它们时是十分痛苦的体验。而 ZHA 默认以设备型号命名,并且添加成功后即时允许用户重命名。在用户体验上明显更加人性化。
- 在我的设备上 zigbee2mqtt 经常出现控制设备失败的问题,而 ZHA 没有出现此问题。
- 前文所述的优势。
如果你也遇到了和我一样的问题,那么考虑迁移也是未尝不可的。
|