Барахлит zigbee2mqtt

Добрый вечер!
Как-то плохо работает zigbee. Поначалу запускается, получается привязать пару датчиков, затем привязка перестает работать. Если полностью перепрошить контроллер с полным сбросом, zigbee вроде оживает, но ненадолго.

В логах в конце нашел такие строки:

Лог
-- Logs begin at Fri 2021-07-30 14:11:46 UTC. --
июл 30 16:04:46 IQ930000 npm[10801]: Zigbee2MQTT:info  2021-07-30 16:04:46: MQTT publish: topic 'zigbee2mqtt/0x5c0272fffec3dbe3', payload '{"battery":100,"humidity":53.9,"last_seen":1627661086216,"linkquality":46,"temperature":26.9,"voltage":2800}'
июл 30 16:04:46 IQ930000 npm[10801]: Zigbee2MQTT:info  2021-07-30 16:04:46: MQTT publish: topic 'zigbee2mqtt/0x5c0272fffec3dbe3', payload '{"battery":100,"humidity":53.9,"last_seen":1627661086827,"linkquality":46,"temperature":26.9,"voltage":2800}'
июл 30 16:04:47 IQ930000 npm[10801]: Zigbee2MQTT:info  2021-07-30 16:04:47: MQTT publish: topic 'zigbee2mqtt/0x5c0272fffec3dbe3', payload '{"battery":100,"humidity":53.9,"last_seen":1627661087430,"linkquality":46,"temperature":26.9,"voltage":2800}'
июл 30 16:04:48 IQ930000 npm[10801]: Zigbee2MQTT:info  2021-07-30 16:04:48: MQTT publish: topic 'zigbee2mqtt/0x5c0272fffec3dbe3', payload '{"battery":100,"humidity":53.9,"last_seen":1627661088036,"linkquality":46,"temperature":26.9,"voltage":2800}'
июл 30 16:04:48 IQ930000 npm[10801]: Zigbee2MQTT:info  2021-07-30 16:04:48: MQTT publish: topic 'zigbee2mqtt/0x5c0272fffec3dbe3', payload '{"battery":100,"humidity":53.9,"last_seen":1627661088704,"linkquality":46,"temperature":26.9,"voltage":2800}'
июл 30 16:06:30 IQ930000 npm[10801]: (node:11117) UnhandledPromiseRejectionWarning: Error: SREQ '--> ZDO - mgmtPermitJoinReq - {"addrmode":15,"dstaddr":65532,"duration":254,"tcsignificance":0}' failed with status '(0x10: MEM_ERROR)' (expected '(0x00: SUCCESS)')
июл 30 16:06:30 IQ930000 npm[10801]:     at Znp.<anonymous> (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:291:27)
июл 30 16:06:30 IQ930000 npm[10801]:     at Generator.next (<anonymous>)
июл 30 16:06:30 IQ930000 npm[10801]:     at fulfilled (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:24:58)
июл 30 16:06:30 IQ930000 npm[10801]: (node:11117) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 12)
июл 30 16:09:50 IQ930000 npm[10801]: (node:11117) UnhandledPromiseRejectionWarning: Error: SREQ '--> ZDO - mgmtPermitJoinReq - {"addrmode":15,"dstaddr":65532,"duration":254,"tcsignificance":0}' failed with status '(0x10: MEM_ERROR)' (expected '(0x00: SUCCESS)')
июл 30 16:09:50 IQ930000 npm[10801]:     at Znp.<anonymous> (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:291:27)
июл 30 16:09:50 IQ930000 npm[10801]:     at Generator.next (<anonymous>)
июл 30 16:09:50 IQ930000 npm[10801]:     at fulfilled (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:24:58)
июл 30 16:09:50 IQ930000 npm[10801]: (node:11117) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 13)
июл 30 16:13:10 IQ930000 npm[10801]: (node:11117) UnhandledPromiseRejectionWarning: Error: SREQ '--> ZDO - mgmtPermitJoinReq - {"addrmode":15,"dstaddr":65532,"duration":254,"tcsignificance":0}' failed with status '(0x10: MEM_ERROR)' (expected '(0x00: SUCCESS)')
июл 30 16:13:10 IQ930000 npm[10801]:     at Znp.<anonymous> (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:291:27)
июл 30 16:13:10 IQ930000 npm[10801]:     at Generator.next (<anonymous>)
июл 30 16:13:10 IQ930000 npm[10801]:     at fulfilled (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:24:58)
июл 30 16:13:10 IQ930000 npm[10801]: (node:11117) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 14)
zigbee2mqtt/bridge/logging {"level":"info","message":"MQTT publish: topic 'zigbee2mqtt/0x5c0272fffec3dbe3', payload '{\"battery\":100,\"humidity\":53.9,\"last_seen\":1627661628172,\"linkquality\":41,\"temperature\":26.2,\"voltage\":2800}'"}
июл 30 16:13:48 IQ930000 npm[10801]: Zigbee2MQTT:info  2021-07-30 16:13:48: MQTT publish: topic 'zigbee2mqtt/0x5c0272fffec3dbe3', payload '{"battery":100,"humidity":53.9,"last_seen":1627661628172,"linkquality":41,"temperature":26.2,"voltage":2800}'
zigbee2mqtt/bridge/logging {"level":"info","message":"MQTT publish: topic 'zigbee2mqtt/0x5c0272fffec3dbe3', payload '{\"battery\":100,\"humidity\":55.1,\"last_seen\":1627661628702,\"linkquality\":41,\"temperature\":26.2,\"voltage\":2800}'"}
июл 30 16:13:48 IQ930000 npm[10801]: Zigbee2MQTT:info  2021-07-30 16:13:48: MQTT publish: topic 'zigbee2mqtt/0x5c0272fffec3dbe3', payload '{"battery":100,"humidity":55.1,"last_seen":1627661628702,"linkquality":41,"temperature":26.2,"voltage":2800}'
июл 30 16:16:30 IQ930000 npm[10801]: (node:11117) UnhandledPromiseRejectionWarning: Error: SREQ '--> AF - dataRequestExt - {"dstaddrmode":2,"dstaddr":"0x000000000000fffd","destendpoint":242,"dstpanid":0,"srcendpoint":242,"clusterid":33,"transid":221,"options":0,"radius":30,"len":6,"data":{"type":"Buffer","data":[25,9,2,11,254,0]}}' failed with status '(0x10: MEM_ERROR)' (expected '(0x00: SUCCESS)')
июл 30 16:16:30 IQ930000 npm[10801]:     at Znp.<anonymous> (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:291:27)
июл 30 16:16:30 IQ930000 npm[10801]:     at Generator.next (<anonymous>)
июл 30 16:16:30 IQ930000 npm[10801]:     at fulfilled (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:24:58)
июл 30 16:16:30 IQ930000 npm[10801]: (node:11117) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 15)
июл 30 16:19:50 IQ930000 npm[10801]: (node:11117) UnhandledPromiseRejectionWarning: Error: SREQ '--> AF - dataRequestExt - {"dstaddrmode":2,"dstaddr":"0x000000000000fffd","destendpoint":242,"dstpanid":0,"srcendpoint":242,"clusterid":33,"transid":222,"options":0,"radius":30,"len":6,"data":{"type":"Buffer","data":[25,10,2,11,254,0]}}' failed with status '(0x10: MEM_ERROR)' (expected '(0x00: SUCCESS)')
июл 30 16:19:50 IQ930000 npm[10801]:     at Znp.<anonymous> (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:291:27)
июл 30 16:19:50 IQ930000 npm[10801]:     at Generator.next (<anonymous>)
июл 30 16:19:50 IQ930000 npm[10801]:     at fulfilled (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:24:58)
июл 30 16:19:50 IQ930000 npm[10801]: (node:11117) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 16)

Из-за чего это происходит? Как починить?

Добрый день.
Да, у себя воспроизвел.
В качестве эксперимента, при отказе попробуйте обесточить полностью контроллер секунд на 20 и запустите снова.
Модуль начнет работать?

По памяти, да, если отключить на какое-то время от питания а затем включить, снова начинает работать, но как правило проблема возвращается.

С чем это связано? Можно как-то устранить?

Вот сейчас разбираюсь. Собрал стенд, вытащил модуль наружу, подключаю анализатор. Но такое впечатление - что просто подвисает. Сам модуль перестает отвечать, uart на разъеме продолжает работать. Проблем по питанию не увидел, но не исключено что они есть.

Добрый день!
Нету новостей?

Думаю на неделе будут.

1 лайк

А какое используете ядро?

Для больлшего понимания, можно результаты

cat /sys/kernel/debug/gpio

в “рабочем” варианте и когда “отвалилось”?

Все контроллеры шьем одинаковой прошивкой.

root@IQ930000:~# uname -r
4.9.22-wb6

Взять данные с разных контроллеров или с одного и того же но в момент когда работает и когда нет?

С другого контроллера с работающим ZigBee:
root@IQ930000:~# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-31, parent: platform/209c000.gpio, 209c000.gpio:
 gpio-10  (                    |?                   ) in  lo    
 gpio-11  (                    |w1                  ) in  hi    
 gpio-13  (                    |w1 strong pullup    ) out lo    
 gpio-27  (                    |sysfs               ) out hi    

gpiochip1: GPIOs 32-63, parent: platform/20a0000.gpio, 20a0000.gpio:
 gpio-48  (                    |sda                 ) in  hi    
 gpio-49  (                    |scl                 ) in  hi    
 gpio-51  (                    |watchdog            ) out hi    

gpiochip2: GPIOs 64-95, parent: platform/20a4000.gpio, 20a4000.gpio:
 gpio-67  (                    |scl                 ) in  hi    
 gpio-68  (                    |w1                  ) in  hi    
 gpio-70  (                    |sda                 ) in  hi    
 gpio-71  (                    |scl                 ) in  hi    
 gpio-72  (                    |sysfs               ) in  hi IRQ
 gpio-73  (                    |sysfs               ) out hi    
 gpio-74  (                    |wifi_en_pullup      ) out hi    
 gpio-76  (                    |sda                 ) in  hi    
 gpio-77  (                    |sysfs               ) in  hi IRQ
 gpio-78  (                    |sysfs               ) in  hi IRQ
 gpio-79  (                    |sysfs               ) out lo    
 gpio-80  (                    |sysfs               ) out lo    
 gpio-81  (                    |sysfs               ) out lo    
 gpio-82  (                    |sysfs               ) out lo    
 gpio-83  (                    |sysfs               ) in  lo    
 gpio-84  (                    |sysfs               ) out lo    
 gpio-88  (                    |sysfs               ) out lo    
 gpio-91  (                    |sysfs               ) in  hi IRQ
 gpio-92  (                    |sysfs               ) in  hi IRQ

gpiochip3: GPIOs 96-127, parent: platform/20a8000.gpio, 20a8000.gpio:
 gpio-107 (                    |usb1_vbus           ) out hi    
 gpio-108 (                    |spi_imx             ) in  hi    
 gpio-112 (                    |w1 strong pullup    ) out lo    
 gpio-116 (                    |sysfs               ) out hi    
 gpio-119 (                    |sysfs               ) out hi    

gpiochip4: GPIOs 128-159, parent: platform/20ac000.gpio, 20ac000.gpio:
 gpio-129 (                    |phy-reset           ) out hi    
 gpio-132 (                    |sysfs               ) out hi

Сам zigbee модуль в какой разъем включен?

Первый

Нет, не тот баг… Так, просто перезапуск zigbee2mqtt не помогает?

Неа. Так чтобы что-то зависло и нужен был перезапуск zigbee2mqtt не было. Точнее, было, но там что-то в перебросе топиков их zigbee2mqtt/+ в /devices/… . Это другая история.
А иногда встречается, когда zigbee модуль словно выходит из строя. Перезапуск zigbee2mqtt, перезагрузка контроллера и переустановка zigbee2mqtt с удалением всей директории с данными не помогает.
Замечал, что переустановка системы с полным сбросом на время помогала, но я это связываю больше с отключением питания на длительное время. Так же было, когда монтажники приносили испорченный контроллер с объекта в офис, и при включении в офисе он работал штатно.
Это случается не часто и проблема явно плавающая. Где-то на 5% контроллеров. Зависимости не нашел.

Хм. На модуль Zigbee заведен Reset, на контаке RTS разъема, активный уровень - низкий.
Можно использовать…
А есть ли пара контроллер+модуль которая часто виснет?

Не о причине zigbee пришлось пройти процесс возврата к заводским настройкам. Zigbee после восстановления системы не работает.

root@wirenboard-AFMIIQX7:~# systemctl status zigbee2mqtt.service
● zigbee2mqtt.service - zigbee2mqtt
   Loaded: loaded (/lib/systemd/system/zigbee2mqtt.service; enabled; vendor pres
   Active: active (running) since Sun 2021-08-15 19:50:30 +05; 3min 28s ago
 Main PID: 1564 (node)
   CGroup: /system.slice/zigbee2mqtt.service
           ├─1564 npm
           ├─3341 sh -c node index.js
           └─3342 node index.js

По статусу вроде как все хорошо, в логах также ошибок не вижу. Но!

  1. В девайсах у меня он не появляется (появился сначала, но я его случайно из WUI удалил и более у меня он не появляется)
  2. До того как исчез из девайсов статус был всегда offline. устройства он не видел.
  3. Как удалить ранее привязанные устройства, есть какие то мертвые души которые нужно убрать чтобы место в девайсах не занимали.

Прошу помочь с чего начать

Добрый день!
Давайте обсуждать другую проблему в отдельной ветке.
Иначе запутаемся и будем искать разные проблемы.

Добрый день!
Была связка, но боюсь её уже не найдем. Тот что сейчас на стенде, к сожалению, стал работать нормально. Если воспроизведется, обязательно напишу.

Тут пишут что свисток zigbee наедается периодически, помогает полное отключение питания (просто ребут не поможет), мне помогло на wb6 c встроенным контроллером Замена Aqara: CC2531 и CC2538 для организации Zigbee сети – Necromancer's notes

1 лайк

должна помочь перезагрузка по halt

1 лайк