Ошибки и предложения

В этом разделе вы можете проголосовать за идеи по открытым проектам. Вы всегда можете предложить свою идею, перейдя на страницу проекта.

Спасибо!

Мы очень рады, что Вам нравится данный проект и вы проголосовали за его развитие.

Работа над задачами по проекту отнимает у его разработчика самое ценное — время, так что небольшая компенсация в виде материальной поддержки поднимет интерес к разработке и позволит сделать больше задач для общей пользы :)

Перейти к проекту Нет, спасибо

<<< Назад

zigbeedev перезапускает Zigbee2MQTT при каждом старте цикла (z2m 2.x)

Добавлено: 2026-09-29 23:29:27 / Статус: Новая / Проект: Дополнение ZigbeeDev

https://github.com/sergejey/majordomo-zigbeedev/is...

При старте cycle_zigbeedev.php вызывается refreshDevices(), которая публикует bridge/request/restart (zigbeedev.class.php, строка 270). В результате каждый перезапуск MajorDoMo или цикла zigbeedev перезапускает Zigbee2MQTT: сеть Zigbee недоступна около 15 секунд, команды в это окно теряются.

В Zigbee2MQTT 2.x этот перезапуск не нужен: топика bridge/config/devices больше нет, а список устройств z2m постоянно хранит в retained-топике bridge/devices.

Проверено на Zigbee2MQTT 2.2.1: после комментирования строки 270 управление устройствами и получение состояний работают в обе стороны, z2m при старте MajorDoMo больше не перезапускается.

Попутное наблюдение: в z2m 2.x bridge/devices приходит как JSON-массив [...], а processMessage() разбирает только значения, начинающиеся с {. Поэтому processListOfDevices() для z2m 2.x, похоже, не вызывается, и данные о модели и производителе новых устройств не заполняются.

Предложение: убрать bridge/request/restart из refreshDevices() (или оставить только для z2m 1.x) и добавить разбор массива из bridge/devices.

0
 
Обсуждение (0)