『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 204280|回复: 101

[基础教程] 停止过度神化zigbee2mqtt,ZHA可能是你接入zigbee设备的更佳选择

  [复制链接]

32

主题

986

帖子

4233

积分

论坛元老

Rank: 8Rank: 8

积分
4233
金钱
3207
HASS币
110

教程狂人论坛风云人物

发表于 2021-3-27 23:15:39 | 显示全部楼层 |阅读模式
本帖最后由 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?

  1. 把 Zigbee 适配器插在 Home Assistant 服务器上。
  2. 进入“集成”页面,点击“添加集成”,在搜索框中输入“ZHA”,在下方选择“Zigbee Home Automation”。
  3. 在接下来的下拉菜单中,选择你的zigbee适配器(通常只有一个),然后点击提交。
  4. 稍等片刻,集成自动配置完成。
  5. 点击“ZHA”集成的“配置”,右下角“ADD DEVICES”,进入添加子设备状态,按照设备说明书的指示,使设备配网即可。

我已经在使用 zigbee2mqtt,要不要考虑迁移到 ZHA?

不建议。这一文章旨在让新人接入设备时能多一种选择。迁移到 ZHA,需要你重新配对所有设备。如果你的 Zigbee 网络在稳定运行,无需考虑迁移。

我为什么从 zigbee2mqtt 迁移到了 ZHA?

  1. zigbee2mqtt 在添加新设备时默认以 IEEE 地址命名,这对用户来说是一段无意义且难以辨认的字符串,在添加多个设备并命名它们时是十分痛苦的体验。而 ZHA 默认以设备型号命名,并且添加成功后即时允许用户重命名。在用户体验上明显更加人性化。
  2. 在我的设备上 zigbee2mqtt 经常出现控制设备失败的问题,而 ZHA 没有出现此问题。
  3. 前文所述的优势。

如果你也遇到了和我一样的问题,那么考虑迁移也是未尝不可的。

评分

参与人数 11金钱 +143 HASS币 +20 收起 理由
wjx + 5 感谢楼主分享!
LoneStar + 1
luzai + 20 厉害了word楼主!
anjsy + 2 厉害了word楼主!
893399065 + 20 论坛有你更精彩!
natic + 20 墙都不扶,就服楼主!
jyz_0501 + 20 论坛有你更精彩!
lidicn + 20 论坛有你更精彩!
+ 20 + 20 元芳,你怎么看?
Jerrylee + 10 感谢楼主分享!
neoyang + 5

查看全部评分

回复

使用道具 举报

17

主题

799

帖子

5732

积分

论坛元老

Rank: 8Rank: 8

积分
5732
金钱
4928
HASS币
0
发表于 2021-3-27 23:21:46 | 显示全部楼层
一直Z2M,其实这帖子写的其他的没觉得有啥感觉
不过看到了【在我的设备上(CC2531) zigbee2mqtt 经常出现控制设备失败的问题,而 ZHA 没有出现此问题。】,嗯,手头有个SONOFF的经常操作卡,,明天ZHA试试- -

顺便,Z2M现在也是自带UI的,重命名啥的也是都可以~~
回复

使用道具 举报

32

主题

986

帖子

4233

积分

论坛元老

Rank: 8Rank: 8

积分
4233
金钱
3207
HASS币
110

教程狂人论坛风云人物

 楼主| 发表于 2021-3-27 23:28:35 | 显示全部楼层
sirakawa 发表于 2021-3-27 23:21
一直Z2M,其实这帖子写的其他的没觉得有啥感觉
不过看到了【在我的设备上(CC2531) zigbee2mqtt 经常出现控 ...

嗯,我按照github首页的教程安装,确实没有看到UI,是不是需要再安装别的东西?重命名倒是确实可以在UI操作,但是看着那堆地址还是挺痛苦的

你的z2m操作卡是不是也是点了下开关没响应,然后再点几下也不行,然后过10秒钟突然啪啪啪开关好几下?

当时一直没怀疑是z2m的问题,快把我整疯了……
回复

使用道具 举报

27

主题

220

帖子

939

积分

高级会员

Rank: 4

积分
939
金钱
719
HASS币
0
发表于 2021-3-27 23:37:50 | 显示全部楼层
问题的关键不是在python ,nodejs上,是网关性能问题。
回复

使用道具 举报

32

主题

986

帖子

4233

积分

论坛元老

Rank: 8Rank: 8

积分
4233
金钱
3207
HASS币
110

教程狂人论坛风云人物

 楼主| 发表于 2021-3-27 23:41:43 | 显示全部楼层
dotlife 发表于 2021-3-27 23:37
问题的关键不是在python ,nodejs上,是网关性能问题。

是的。本文也可看做在预算和性能都有限的情况下,实现zigbee接入方式的一种探讨。
回复

使用道具 举报

40

主题

3056

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11149
金钱
8042
HASS币
182
发表于 2021-3-28 08:34:51 | 显示全部楼层
27hh 发表于 2021-3-27 23:28
嗯,我按照github首页的教程安装,确实没有看到UI,是不是需要再安装别的东西?重命名倒是确实可以在UI操 ...

docker- compose 保平安。
Nero
回复

使用道具 举报

3

主题

150

帖子

941

积分

高级会员

Rank: 4

积分
941
金钱
791
HASS币
0
发表于 2021-3-28 08:37:47 来自手机 | 显示全部楼层
27hh 发表于 2021-3-27 23:28
嗯,我按照github首页的教程安装,确实没有看到UI,是不是需要再安装别的东西?重命名倒是确实可以在UI操 ...

你这明显是zigbee网络问题,路由不够,还有你HA宿主性能也有关系,,还有注意避开2.4g信道。我原来用Pi4 后面用X86路由有三个,响应没什么大问题,基本实时。
回复

使用道具 举报

14

主题

137

帖子

1377

积分

论坛特邀嘉宾

积分
1377
金钱
1240
HASS币
0
发表于 2021-3-28 10:17:10 | 显示全部楼层
“正所谓“如非必要,勿增实体”,单为了几个 Zigbee 设备而安装 Node.js 平台,然后再在其上安装一个第三方程序,其实并不是很划算的事情。”
--- 基于Python做原生插件开发比用node评估下来麻烦很多,尤其是要搞完测试整合到官方代码里面的话,时间很长。所以后面应该越来越多的add-on都会基于nodejs来开发,感觉HA平台上安装nodejs应该是跑不掉的了。
回复

使用道具 举报

17

主题

799

帖子

5732

积分

论坛元老

Rank: 8Rank: 8

积分
5732
金钱
4928
HASS币
0
发表于 2021-3-28 15:28:38 | 显示全部楼层
本帖最后由 sirakawa 于 2021-3-28 15:29 编辑
27hh 发表于 2021-3-27 23:28
嗯,我按照github首页的教程安装,确实没有看到UI,是不是需要再安装别的东西?重命名倒是确实可以在UI操 ...

z2m设置加上前台选项,然后Z2M更新到最近的比较新的版本
frontend:
  port: 8202

没错,点了没反应,然后过一阵子啪啪啪的。
而且别的都没问题,就这一个开关有问题,所以我一直怀疑是开关的问题没想Z2M,一会试试ZHA行不行
回复

使用道具 举报

6

主题

154

帖子

3336

积分

论坛元老

Rank: 8Rank: 8

积分
3336
金钱
3182
HASS币
10
发表于 2021-3-28 17:04:31 | 显示全部楼层
国外论坛、常常都会有 Z2M / ZHA 何者好用的争论串

但好像国内都是 Z2M 使用者居多

自己从 Z2M 转换到 ZHA 的经验是相对满意的(配对、效能与稳定度),但缺点就是支援的设备速度跟不大上 Z2M(但 Z2M 的设备新增删除功能实在很蛋疼)
所以可能还是要看看自己拥有的设备支不支持、自己的使用经验比较。

感谢大神好文
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 01:34 , Processed in 0.195940 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表