home-assistant智趣盒子对接第三方zigbee设备的教程--zigbee2mqtt

一、什么是zigbee2mqtt

  • zigbee2mqtt是一个非常出色的开源项目,通过它可以用第三方zigbee网关把海量的zigbee设备对接到home-assistant或者node-red。
    软件层面逻辑:

    硬件对接逻辑:

为什么要用zigbee2mqtt

zigbee2mqt(简称z2m)支持海量第三方设备–厂家因为商业利益原因对自己的网关进行了限制,一般自有品牌网关通常都只能接入自己品牌的zigbee设备。
到目前为止,项目一共支持了207家不同供应商支持1402台设备。其中国内类似绿米、涂鸦等厂商的zigbee大多数都是覆盖了。如果没有覆盖到,z2m项目组也提供了方法,有接入第三方设备的教程。


二、效果展示:





三、硬件准备:

  1. 老妖之前的zigbee2mqtt网关项目:
  1. 动手能力差的建议购买论坛大神开车的项目:

网关介绍内容来自corogoo大神的介绍
购买链接
https://item.taobao.com/item.htm?t&id=642996988585

zigbe2mqtt网关 z2m网关最强cc2652p zigbee cc2652p 最新版
zigbee2mqtt ,z2m,最新zigbee网关方案,性能超级强悍,甩cc2530 cc2531 cc2538等n条街,体验接近物理般链接的快感

  • 硬件是最新1.7版本
  • 固件zigbee3.0版本
  • 刷好3.0固件
  • 接入homeassistant或iobroker等平台
  • 采用Ti目前最强的CC2652方案
  • 板载PCB发射功率20dBm,可外置2.4G天线

性能是目前最强的了 带机量在200台没问题~
确实远超CC2530 CC2531 CC2538等方案
一是在发射功率上,
二是在带机量上,
三是在响应速度上


这个usb网关是要插在智趣盒子或者其他homeassistant硬件上使用。智趣盒子插在usb2.0或者蓝色的usb3.0都是可以的。

四、软件准备

注意:
4月25日以后的智趣盒子固件已经预设了zigbee2mqtt,直接跳到第五步使用。

  1. 安装mqtt的addon,并进行相应的配置


logins:
  - username: mqtt
    password: mqtt
anonymous: false
customize:
  active: false
  folder: mosquitto
certfile: fullchain.pem
keyfile: privkey.pem
require_certificate: false

  1. 在智趣盒子的supervisor里面添加zigbee2mqtt的addon,复制以下地址:
https://github.com/zigbee2mqtt/hassio-zigbee2mqtt
  1. 把上述z2m的addon源地址黏贴到supervisor里面,然后下载镜像安装,因为addon存在github上(服务器海外的,所以没有出国旅行的环境,会很慢,耐心等待)





  1. addon镜像安装好以后,对z2m的addon进行设置。主要是复制黏贴我写好的配置文件到指定区域,然后保存。注意一定要保存配置信息。


data_path: /config/zigbee2mqtt
external_converters: []
devices: devices.yaml
groups: groups.yaml
homeassistant: true
permit_join: false
mqtt:
  base_topic: zigbee2mqtt
  server: 'mqtt://172.17.0.1/:1883'
  user: mqtt  #自己实际的用户名
  password: mqtt #自己实际的密码
  force_disable_retain: false
serial:
  port: /dev/ttyUSB0
advanced:
  log_level: warn
  pan_id: 6755
  channel: 25
  network_key:
    - 1
    - 3
    - 5
    - 7
    - 9
    - 11
    - 13
    - 15
    - 0
    - 2
    - 4
    - 6
    - 8
    - 10
    - 12
    - 13
  availability_blocklist: []
  availability_passlist: []
device_options: {}
blocklist: []
passlist: []
queue: {}
frontend:
  port: 8099
experimental: {}
socat:
  enabled: false
  master: 'pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777'
  slave: 'tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5'
  options: '-d -d'
  log: false
  1. 启动z2m的addon。这里要注意的是:网关硬件要链接到盒子,addon才能启动的。

6. 查看addon运行状态,如果出了问题,是看这里的日志

  1. 集成添加mqtt插件

五、通过z2m管理和对接第三方zigbee设备

  1. 支持设备列表
    示例:

查询网址:
键盘同时按 ctrl和f,输入品牌英文名字,如xiaomi、tuya等查找

  1. 把zigbee设备与网关配对

  1. 编辑接入的设备的相关信息

六、在home-assistant对接入的zigbee进行管理

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

这个我真不会,得自己看官方教程

确实很详细 ,感谢科普,第三方不在支持列表的,主要是路径映射,和node.js搞定就可以依葫芦画瓢了!

是否方便跟大家分享一下啊?

为什么找不到网关

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2021-05-21T05_09_20_526Z-debug.log
[13:09:21] INFO: Handing over control to Zigbee2mqtt Core …

zigbee2mqtt@1.18.3 start /app
node index.js
Zigbee2MQTT:error 2021-05-21 13:09:47: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2021-05-21 13:09:47: Failed to start zigbee
Zigbee2MQTT:error 2021-05-21 13:09:47: Check https://www.zigbee2mqtt.io/information/FAQ.html#help-zigbee2mqtt-fails-to-start for possible solutions
Zigbee2MQTT:error 2021-05-21 13:09:47: Exiting…
Zigbee2MQTT:error 2021-05-21 13:09:47: Error: Failed to connect to the adapter (Error: SRSP - SYS - ping after 6000ms)
at ZStackAdapter. (/app/node_modules/zigbee-herdsman/dist/adapter/z-stack/adapter/zStackAdapter.js:94:31)
at Generator.throw ()
at rejected (/app/node_modules/zigbee-herdsman/dist/adapter/z-stack/adapter/zStackAdapter.js:25:65)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! zigbee2mqtt@1.18.3 start: node index.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the zigbee2mqtt@1.18.3 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2021-05-21T05_09_47_956Z-debug.log
[13:09:48] INFO: Handing over control to Zigbee2mqtt Core …
zigbee2mqtt@1.18.3 start /app
node index.js

把你的addon的配置贴出来

感谢,看教程搞定了。就是有个问题,用的绿米的人体感应,一晚上不用就失灵了咋回事?是休眠了么?

你看看zigbee2mqtt的日志,看看是否会有提示的?

想要接入2个网关应该怎么设置

好像是没识别设备,上次重新拔插好了,这次重装不行

Zigbee2MQTT:error 2021-06-01 14:13:57: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2021-06-01 14:13:57: Failed to start zigbee
Zigbee2MQTT:error 2021-06-01 14:13:57: Check ![](file:///C:\Users\admin\AppData\Roaming\Tencent\QQTempSys`7_{~]GF$3{MOQ4V_}PH]YC.png)https://www.zigbee2mqtt.io/information/FAQ.html#help-zigbee2mqtt-fails-to-start for possible solutions
Zigbee2MQTT:error 2021-06-01 14:13:57: Exiting…
Zigbee2MQTT:error 2021-06-01 14:13:57: Error: Failed to connect to the adapter (Error: SRSP - SYS - ping after 6000ms)

请问一下, 可以一个HA 接入两个z2m网关吗? 一个网关有点覆盖不足。 我想再添加一个网关。 可以的话怎么设置才能一个HA控制两个z2m网关所有子设备?

不用通过网关去覆盖的,你可以通过增加中继设备来扩大覆盖范围。

嗯。我之前听人家说,原本也是要透过中继,但是每次新设备配对,都会配到主网关。这样所有子设备都在主网关下面。有些网关只能承受20-30子设备。 所以我才想说另外部署另外一个网关。 请问会有这样的问题吗? 或者说,子设备可以选择配对在中继网关?

zigbee是自动调节的。主要你分布了中继,信号不够就会跳接到中继吧。

那请问, corogoo大神 的设备可以当作中继吗

中继设备都是用那个现成的zigbee零火插座来的

好的 谢谢老大
感恩

不好意思,在请教你个问题。
我家里现在有2-3家的zigbee设备。
那么如果我买个小米zigbee插座,
这样其他家的设备会不会也能使用这个小米插座来当个中继?

如果你把这个带有中继功能的小米插座接入了zigbee2mqtt,那么它就是这个网络里面的中介,也是可能中继接入zigbee2mqtt的其他设备