[Solved] No device detected for pairing - odroid-n2

Hi,
I don’t see any device available for pairing when I try to detect new device using zigbee2mqtt.
I installed zigbee2mqtt on an odroid-n2 (arm, Ubuntu 18.04.2 LTS) using the bare-metal Linux guide.
I get this log.
My configuration.
The stick is correctly detected. I can even turn off the led with the settings.
sudo dmesg
[ 7135.784063] usb 1-1.1.1: new full-speed USB device number 8 using xhci-hcd
[ 7135.887641] usb 1-1.1.1: New USB device found, idVendor=0451, idProduct=16a8
[ 7135.887650] usb 1-1.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 7135.887656] usb 1-1.1.1: Product: TI CC2531 USB CDC
[ 7135.887660] usb 1-1.1.1: Manufacturer: Texas Instruments
[ 7135.887665] usb 1-1.1.1: SerialNumber: __0X00124B001938A33F
[ 7135.906944] cdc_acm 1-1.1.1:1.0: ttyACM0: USB ACM device

The cc2531 is correctly flashed (it works on my arch 64 laptop).

I tried pairing with the following device:

  • Philips Hue dimmer
  • Philips Hue white and color ambiance E14
  • Xiaomi Aqara temperature
  • Xiaomi Mi/Aqara smart home cube

Each time, I followed the pairing video instruction, with devices close to the cc2531 (less than a meter except for the Hue E14) they are brand new.
I have removed ModemManager.

Is their other driver needed than cdc_acm?
Have you any other idea of something that I might have been wrong?

Thanks

Not without a log to see the fault, if any.
Add to your config:

log_level: debug

And post the log.

They were posted as pastbin link in the first post (I didn’t see the “hide details” option in discourse), but it seams that pastbin is down.

Config
# Home Assistant integration (MQTT discovery)
homeassistant: false

# allow new devices to join
permit_join: true

# MQTT settings
mqtt:
  # MQTT base topic for zigbee2mqtt MQTT messages
  base_topic: zigbee2mqtt
  # MQTT server URL
  server: 'mqtt://localhost'

# Serial settings
serial:
  # Location of CC2531 USB sniffer
  port: /dev/ttyACM0

advanced:
  log_level: debug
Log
zigbee2mqtt> DEBUG=zigbee* npm start

> zigbee2mqtt@1.4.0 start /opt/zigbee2mqtt
> node index.js

  zigbee2mqtt:info 7/13/2019, 9:13:06 AM Logging to directory: '/opt/zigbee2mqtt/data/log/2019-07-13.09-13-06'
  zigbee2mqtt:debug 7/13/2019, 9:13:06 AM Removing old log directory '/opt/zigbee2mqtt/data/log/2019-07-12.23-20-58'
  zigbee2mqtt:debug 7/13/2019, 9:13:06 AM Using zigbee-shepherd with settings: '{"net":{"panId":6754,"extPanId":[221,221,221,221,221,221,221,221],"channelList":[11],"precfgkey":"HIDDEN"},"dbPath":"/opt/zigbee2mqtt/data/database.db","coordBackupPath":"/opt/zigbee2mqtt/data/coordinator_backup.json","sp":{"baudRate":115200,"rtscts":true}}'
  zigbee2mqtt:debug 7/13/2019, 9:13:06 AM Loaded state from file /opt/zigbee2mqtt/data/state.json
  zigbee2mqtt:debug 7/13/2019, 9:13:06 AM Saving state to file /opt/zigbee2mqtt/data/state.json
  zigbee2mqtt:info 7/13/2019, 9:13:06 AM Starting zigbee2mqtt version 1.4.0 (commit #927c4db)
  zigbee2mqtt:info 7/13/2019, 9:13:06 AM Starting zigbee-shepherd
  zigbee-shepherd:init zigbee-shepherd booting... +0ms
  zigbee-shepherd:request REQ --> SYS:version +0ms
  zigbee-shepherd:request RSP <-- SYS:version +33ms
  zigbee-shepherd:request REQ --> SYS:osalNvRead +2ms
  zigbee-shepherd:request RSP <-- SYS:osalNvRead, status: 0 +25ms
  zigbee-shepherd:request REQ --> SYS:osalNvRead +16ms
  zigbee-shepherd:request RSP <-- SYS:osalNvRead, status: 0 +19ms
  zigbee-shepherd:request REQ --> SYS:osalNvRead +14ms
  zigbee-shepherd:request RSP <-- SYS:osalNvRead, status: 0 +18ms
  zigbee-shepherd:request REQ --> SYS:osalNvRead +14ms
  zigbee-shepherd:request RSP <-- SYS:osalNvRead, status: 0 +21ms
  zigbee-shepherd:request REQ --> SYS:osalNvRead +13ms
  zigbee-shepherd:request RSP <-- SYS:osalNvRead, status: 0 +23ms
  zigbee-shepherd:request REQ --> SAPI:readConfiguration +14ms
  zigbee-shepherd:request RSP <-- SAPI:readConfiguration, status: 0 +48ms
  zigbee-shepherd:request REQ --> UTIL:getDeviceInfo +16ms
  zigbee-shepherd:request RSP <-- UTIL:getDeviceInfo, status: 0 +25ms
  zigbee-shepherd:init Now the ZNP is a coordinator. +0ms
  zigbee-shepherd:request REQ --> SYS:version +3ms
  zigbee-shepherd:request RSP <-- SYS:version +13ms
  zigbee-shepherd:request REQ --> UTIL:getDeviceInfo +9ms
  zigbee-shepherd:request RSP <-- UTIL:getDeviceInfo, status: 0 +22ms
  zigbee-shepherd:request REQ --> UTIL:getDeviceInfo +1ms
  zigbee-shepherd:request RSP <-- UTIL:getDeviceInfo, status: 0 +13ms
  zigbee-shepherd:request REQ --> UTIL:getDeviceInfo +1ms
  zigbee-shepherd:request RSP <-- UTIL:getDeviceInfo, status: 0 +13ms
  zigbee-shepherd:request REQ --> SYS:osalNvRead +1ms
  zigbee-shepherd:request RSP <-- SYS:osalNvRead, status: 0 +18ms
  zigbee-shepherd:request REQ --> SYS:osalNvRead +2ms
  zigbee-shepherd:request RSP <-- SYS:osalNvRead, status: 0 +17ms
  zigbee-shepherd:request REQ --> SYS:osalNvRead +2ms
  zigbee-shepherd:request RSP <-- SYS:osalNvRead, status: 0 +16ms
  zigbee-shepherd:request REQ --> ZDO:nodeDescReq +7ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:nodeDescRsp +0ms
  zigbee-shepherd:request REQ --> ZDO:activeEpReq +30ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:activeEpRsp +25ms
  zigbee-shepherd:request REQ --> ZDO:simpleDescReq +26ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:simpleDescRsp +26ms
  zigbee-shepherd:request REQ --> ZDO:simpleDescReq +23ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:simpleDescRsp +21ms
  zigbee-shepherd:request REQ --> ZDO:simpleDescReq +20ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:simpleDescRsp +21ms
  zigbee-shepherd:request REQ --> ZDO:simpleDescReq +20ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:simpleDescRsp +20ms
  zigbee-shepherd:request REQ --> ZDO:simpleDescReq +21ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:simpleDescRsp +21ms
  zigbee-shepherd:request REQ --> ZDO:simpleDescReq +21ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:simpleDescRsp +19ms
  zigbee-shepherd:request REQ --> ZDO:simpleDescReq +19ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:simpleDescRsp +21ms
  zigbee-shepherd:request REQ --> AF:delete +23ms
  zigbee-shepherd:request RSP <-- AF:delete, status: 0 +10ms
  zigbee-shepherd:init Deregister endpoint, epId: 11 +359ms
  zigbee-shepherd:request REQ --> ZDO:nodeDescReq +21ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:nodeDescRsp +53ms
  zigbee-shepherd:request REQ --> ZDO:activeEpReq +21ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:activeEpRsp +21ms
  zigbee-shepherd:request REQ --> ZDO:mgmtPermitJoinReq +24ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:mgmtPermitJoinRsp +21ms
  zigbee-shepherd:init Loading devices from database done. +2s
  zigbee-shepherd zigbee-shepherd is _ready and _enabled +0ms
  zigbee2mqtt:info 7/13/2019, 9:13:08 AM zigbee-shepherd started
  zigbee2mqtt:info 7/13/2019, 9:13:08 AM Coordinator firmware version: '20190608'
  zigbee2mqtt:debug 7/13/2019, 9:13:08 AM zigbee-shepherd info: {"enabled":true,"net":{"state":"Coordinator","channel":"11","panId":6754,"extPanId":[221,221,221,221,221,221,221,221],"ieeeAddr":"0x00124b001938a33f","nwkAddr":0},"firmware":{"transportrev":2,"product":0,"version":"2.6.3","revision":20190608},"startTime":1563001988,"joinTimeLeft":0}
  zigbee-shepherd Backup is only supported for Z-Stack 3, skipping... +0ms
  zigbee2mqtt:info 7/13/2019, 9:13:08 AM Currently 0 devices are joined:
  zigbee2mqtt:warn 7/13/2019, 9:13:08 AM `permit_join` set to  `true` in configuration.yaml.
  zigbee2mqtt:warn 7/13/2019, 9:13:08 AM Allowing new devices to join.
  zigbee2mqtt:warn 7/13/2019, 9:13:08 AM Set `permit_join` to `false` once you joined all devices.
  zigbee2mqtt:info 7/13/2019, 9:13:08 AM Zigbee: allowing new devices to join.
  zigbee2mqtt:info 7/13/2019, 9:13:08 AM Connecting to MQTT server at mqtt://localhost
  zigbee-shepherd:request REQ --> ZDO:mgmtPermitJoinReq +144ms
  zigbee2mqtt:info 7/13/2019, 9:13:08 AM zigbee-shepherd ready
  zigbee-shepherd:request REQ --> AF:register +6ms
  zigbee2mqtt:info 7/13/2019, 9:13:08 AM Connected to MQTT server
  zigbee2mqtt:info 7/13/2019, 9:13:08 AM MQTT publish: topic 'zigbee2mqtt/bridge/state', payload 'online'
  zigbee-shepherd:msgHdlr IND <-- ZDO:permitJoinInd +174ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:mgmtPermitJoinRsp +0ms
  zigbee-shepherd:request RSP <-- AF:register, status: 0 +49ms
  zigbee-shepherd Register zApp, epId: 11, profId: 260  +158ms
  zigbee-shepherd:request REQ --> ZDO:nodeDescReq +1ms
  zigbee2mqtt:info 7/13/2019, 9:13:08 AM MQTT publish: topic 'zigbee2mqtt/bridge/config', payload '{"version":"1.4.0","commit":"927c4db","coordinator":20190608,"log_level":"debug","permit_join":true}'
  zigbee-shepherd:msgHdlr IND <-- ZDO:nodeDescRsp +25ms
  zigbee-shepherd:request REQ --> ZDO:activeEpReq +16ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:activeEpRsp +15ms
  zigbee2mqtt:debug 7/13/2019, 9:13:08 AM Mounted the cieApp (epId 11)
  zigbee-shepherd:request REQ --> ZDO:mgmtPermitJoinReq +3m
  zigbee2mqtt:info 7/13/2019, 9:16:28 AM Succesfully reenabled joining
  zigbee-shepherd:msgHdlr IND <-- ZDO:mgmtPermitJoinRsp +3m

No problems that I see in that log.

And all the devices are reset and in paring mode as well?
If so, maybe one more reset will do the trick.

I tried several time to reset/pair (around 15 times for the thermomete, waiting 5min between tests) each devices except for the hue E14. Every time I followed the instructions available in the “supported devices” web page. I rebooted my computer between some of the tests.
Is there a way to read the output of the CC2531 stick in the terminal?

If log level is set to debug it should log everything to the log file. in real time.
as far as I know.

It is strange that there where no log entries of any pairing attempts. That’s what make me believe that resetting the devices again would help.

If you took the devices from a working ziggbee network mesh. And that mesh network is still up with other devices. Turn off that mesh completely then reset and repair.

It maybe simple as the devices are rejoining the (preferred) old network.

There is not other working ziggbee network mesh. I have only one cc2531 stick, and no other hub. Moreover, I didn’t pair any device with the working setup (laptop with archlinux, 64 bits), I just noted that the device is available for pairing in the log.

Zigbee devices will remember the last network there where on. And devices can and will reestablish the last network thay where set to after it’s powered via AC, automatically.
So if ANY zigbee device is powered on that had a network setup that network is up and running.

So it may be necessary to power down all devices from the old network. To remake a new network.

Hope it’s of help.

I tried, but it didn’t change anything. And it would not explain why I can see the zigbee device in the zigbee2mqtt log using the archlinux laptop.

It was a missing driver. The error showed in dmesg only the first time I plugged the CC2531 in the odroid after a boot, that’s why I missed it. You can find a more detailed answer for which driver to enable here.
Thanks for your help.