В этом разделе вы можете проголосовать за идеи по открытым проектам. Вы всегда можете предложить свою идею, перейдя на страницу проекта.
<<< Назад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.