Zigbee2MQTT не перезапускается после потери связи с координатором

Аддон Zigbee2MQTT (дополнение Home Assistant) после потери связи с координатором не поднимается сам: встроенный watchdog, то есть механизм автоперезапуска, делает две попытки и прекращает работу. В логе при этом видны ошибки Socket error. Помогал список задержек перезапуска watchdog в настройках аддона, например 1,5,15,30,60: формат списка описан в документации Zigbee2MQTT, а способ сработал в двух ветках форума из двух, где его пробовали.

Как выглядит проблема

Во всех случаях картина одна: связь с координатором рвется, аддон падает и не поднимается сам. Варианты из обсуждений:

  • аддон перестает перезапускаться после разрыва связи с координатором, watchdog делает две попытки и сдается;
  • Zigbee2MQTT на Raspberry Pi 5 с координатором SLZB-06 падает с ошибками ETIMEDOUT и ECONNRESET, при этом та же конфигурация работает в виртуальной машине;
  • аддон останавливается во время ночного снапшот-бэкапа (резервного копирования) Proxmox с Ethernet-координатором SLZB-06U и не поднимается до ручного запуска.

В одной из веток указана версия 2025.4. В логе видны такие строки:

Socket error Error: read ETIMEDOUT
Socket error Error: read ECONNRESET
Socket error Error: connect EHOSTUNREACH 192.168.178.120:6638
Starting Zigbee2MQTT without watchdog.

Строки read ETIMEDOUT и read ECONNRESET - ошибки чтения соединения, connect EHOSTUNREACH - ошибка подключения к сетевому адресу координатора. Отдельный случай - когда SLZB-06 не запускается после обновления прошивки.

Причины

Первая причина названа в обсуждениях прямо, еще две высказаны как предположения.

ПричинаКак проверитьЧто сделать
В настройках аддона не заданы значения таймингов повторных попыток watchdogОткрыть настройки аддона Zigbee2MQTT и проверить, задан ли список задержек; в логе watchdog делает две попытки и прекращаетЗадать список задержек в минутах, например 1,5,15,30,60
Радиопомехи от стоящей рядом точки доступа Wi-Fi влияют на Ethernet-канал до SLZB-06 (предположение)Сравнить поведение: та же конфигурация работает в виртуальной машине, но падает на Raspberry Pi 5 рядом с точкой доступаОтодвинуть Raspberry Pi 5 от точки доступа Wi-Fi
Координатор после задания бэкапа еще не переподключился, поэтому старт Zigbee2MQTT падает (предположение)Проверить, приходится ли падение на окно ночного снапшот-бэкапа Proxmox и поднимается ли аддон при ручном запускеЗадать список задержек watchdog (в этой ветке помогло); автоматизация с отложенным перезапуском после бэкапа не подтверждена

Что помогает

Начните со списка задержек watchdog: у него два успешных отчета, а формат списка описан в документации.

Список задержек watchdog в настройках аддона

Помогло в двух ветках форума из двух, где это пробовали: 2 успешных отчета, 0 неуспешных. Где находятся настройки аддона, описано в гайде по установке Zigbee2MQTT. В настройках задайте список задержек перезапуска в минутах:

1,5,15,30,60

Каждое число - пауза в минутах до следующей попытки перезапуска. Документация Zigbee2MQTT подтверждает формат: minutes_csv - список чисел через запятую, числа задают минуты. В документации watchdog описан как переменная окружения Z2M_WATCHDOG со списком задержек в минутах.

Разнести Raspberry Pi 5 и точку доступа Wi-Fi

Это опыт одного пользователя, а не правило. После того как Raspberry Pi 5 с координатором SLZB-06 убрали от стоящей рядом точки доступа Wi-Fi, ошибки ETIMEDOUT и ECONNRESET пропали: 1 успешный отчет. Саму причину пользователь описал как предположение - влияние радиопомех на Ethernet-канал до координатора.

Если не помогло

Отчетов, что список задержек пробовали и он не сработал, в обсуждениях нет. Остались два совета без подтверждения:

  • USB-удлинитель 30-50 см для радиостика (модуля координатора). Совет из ветки про Raspberry Pi 5, никто не отписался о результате.
  • Автоматизация, которая перезапускает Zigbee2MQTT после бэкапа с задержкой. Предложено в ветке про Proxmox, подтверждений тоже нет.

Если ошибка другая, это отдельные проблемы: Failed to connect to the adapter при потере связи с адаптером или HOST_FATAL_ERROR при старте слоя EZSP.

Частые вопросы

Что такое watchdog и почему он сдается после двух попыток?

Watchdog - механизм автоперезапуска аддона после падения. В одной ветке причиной назвали то, что значения таймингов повторных попыток не заданы в настройках аддона, и watchdog делает две попытки и прекращает. Список задержек в минутах вида 1,5,15,30,60 расширяет цикл: каждая пауза перед следующей попыткой берется из списка. Формат списка подтвержден документацией Zigbee2MQTT.

Куда вписать список задержек watchdog?

В Home Assistant список вводится в настройках аддона Zigbee2MQTT. В документации тот же механизм описан иначе: переменная окружения Z2M_WATCHDOG со списком задержек повторного запуска в минутах, а имя minutes_csv относится к самому списку чисел через запятую. Значение 1,5,15,30,60 задает паузы между попытками.

Почему на Raspberry Pi 5 падает, а в виртуальной машине работает?

Доказанного ответа нет. Один пользователь предположил, что дело в радиопомехах от точки доступа Wi-Fi, стоящей рядом с Raspberry Pi 5, которые влияют на Ethernet-канал до координатора SLZB-06. После того как плату отодвинули от точки доступа, ошибки ETIMEDOUT и ECONNRESET пропали. Это единичный опыт форума, а не правило.

Что делать, если аддон падает во время бэкапа Proxmox?

Автор ветки предположил, что координатор SLZB-06U после задания бэкапа еще не переподключился, поэтому старт Zigbee2MQTT падает. В этой ветке помог список задержек watchdog. Предлагалась также автоматизация с отложенным перезапуском после бэкапа, но подтверждений нет. До правки аддон остается остановленным до ручного запуска.

Поможет ли USB-удлинитель?

Неизвестно. Совет поставить радиостик на USB-удлинитель 30-50 см появился в ветке про Raspberry Pi 5, но никто не сообщил, помог он или нет. Подтверждения есть у двух других путей: список задержек watchdog в настройках аддона и перенос Raspberry Pi 5 подальше от точки доступа Wi-Fi.

Андрей Ковалев, редактор. Собирает решения из веток форума Home Assistant и сверяет команды и настройки с официальной документацией.