无法连接到 ZigBee 设备(Raspberry Pi4、HomeAssistant、Docker-Compose、ConBeeII)

物联网 树莓派 紫蜂 家庭助理 码头工人
2021-06-13 11:35:52

我被这个难住了 - 一切似乎都配置正确并且工作正常......除了 HomeAssistant 无法发现任何 ZigBee 设备。添加 ConBee II 似乎工作得很好(在映射地址下识别如下):

添加 ConBee 设备的模态截图

...但是当我去添加一个设备时,它会一直旋转,直到它在几分钟后超时:

尝试发现设备失败的屏幕截图

这是一个全新安装的 Raspbian,带有以下 docker-compose.yml(我也尝试过注释掉的选项):

version: '3'
services:
  homeassistant:
    container_name: homeassistant
    # image: homeassistant/home-assistant:stable
    image: homeassistant/raspberrypi4-homeassistant:stable
    ports:
      - "8123:8123"
    volumes:
      - ./config:/config
      - /etc/localtime:/etc/localtime:ro
    devices:
      # - /dev/ttyACM0:/dev/ttyACM0
      - /dev/ttyACM0
    restart: unless-stopped
    # network_mode: host
    # privileged: true

这是 docker 的调试输出,当我在 ConBee 的 HomeAssistant 配置中单击添加设备时,它会立即写入:

homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee broadcast with tsn 1 under 2 request id, data: b'013c00'
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (17, 2, 0, <DeconzAddressEndpoint address_mode=1 address=65532 endpoint=None>, 0, 54, 0, b'\x01<\x00', 2, 0)
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.uart] Send: 0x12130018001100020001fcff00003600000300013c000200
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.uart] Frame received: 0x121300090002002202
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 2]
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.uart] Frame received: 0x0e14000700aa00
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_INDICATION|2: 170>, 0]
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1)
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.uart] Send: 0x1714000800010001
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.uart] Frame received: 0x17140021001a002201fcff0102000000000036000300013c0000afdd873601001e
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [26, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, <DeconzAddress address_mode=ADDRESS_MODE.GROUP address=0xfffc>, 1, <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, 0, 0, 54, b'\x01<\x00', 0, 175, 221, 135, 54, 1, 0, 30]
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy.zdo] [0x0000:zdo] ZDO request ZDOCmd.Mgmt_Permit_Joining_req: [60, <Bool.false: 0>]
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from <DeconzAddress address_mode=ADDRESS_MODE.NWK address=0x0000>, ep: 0, profile: 0x0000, cluster_id: 0x0036, data: b'013c00'
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.uart] Frame received: 0x0e15000700a600
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,)
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.uart] Send: 0x04150007000000
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.uart] Frame received: 0x04150012000b00220201fcff00e100000000
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 2: e1
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0x02 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.GROUP address=0xfffc endpoint=None>, status: 0xe1
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Error while sending 2 req id broadcast: TXStatus.MAC_CHANNEL_ACCESS_FAILURE
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.api] Command Command.write_parameter (2, <NetworkParameter.permit_join: 33>, b'<')
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.uart] Send: 0x0b160009000200213c
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.uart] Frame received: 0x0b16000800010021
homeassistant    | 2021-06-20 11:05:07 DEBUG (MainThread) [zigpy_deconz.api] Write parameter permit_join: SUCCESS

我尝试过的事情:

  1. 删除 HomeAssistant 中的集成并重新添加设备
  2. RMing docker 设置并重新开始
  3. docker-compose 文件中注释掉的参数
  4. 将 zigbee 通道更改为 24(通过 ./config/configuration.yaml
  5. 配对多种不同的设备类型(我尝试过 Leviton 开关和 Aqara 门传感器,始终处于可发现模式)
  6. 将 ConBee 连接到有源 USB 集线器以排除任何 USB3 或 wifi 干扰(尽管 pi 是 5GHz wifi 网络上的客户端)
  7. MAC_CHANNEL_ACCESS_FAILURE广泛搜索错误,这似乎是一个红鲱鱼
1个回答

USB3.0干扰是真实存在的!我将 2 个尺寸合适的 USB 3.0 驱动器直接插入 pi USB3 端口,ConBee II 插入旁边的 USB 2.0 端口,这完全阻止了 ConBee 与 zigbee 设备配对。更令人惊讶的是,将 ConBee 移到有源 USB 集线器(与 Pi 的距离超过 3 英尺)并没有什么不同——我仍然无法与任何 Zigbee 设备配对。另请注意,这不是电源问题 - 我使用的是官方 CanaKit 3.5a 电源。

一旦我移除了两个 USB 拇指驱动器,ConBee 就能够与我的所有 7 个设备配对。