Идентификатор устройства в MQTT совпадает с

WB 8.5 unstable.latest testing
В web-интерфейсе появилось уведомление у всех “устройств” на вкладке “Настройка драйвера Serial-устройств”
На изображении предупреждение о том, что идентификатор устройства в MQTT совпадает, с кнопкой "Задать уникальный идентификатор". (Captioned by AI)
Это какой-то задел на будущее и пока не обращать внимание?

Добрый день!

Для диагностики проблемы пришлите, пожалуйста, архив с диагностической информацией контроллера. Создание архива описано в документации.

Судя по скриншоту, у вас пересечение адресов устройств и их надо устранить.

Уведомление появилось после обновления apt update && apt upgrade пару дней назад. Предполагаете пересечение адресов устройств Modbus? Нет, пересечений нет, инсталляция работает штатно, никаких вмешательств в адресацию не было.

приложен диагностический архив, доступен только сотрудникам поддержки
(511,3 КБ)

Добрый день!

Проверьте, пожалуйста, скорость на шине.

Вижу в файле /etc/wb-mqtt-serial.conf следующую строку:

"baud_rate": 1152

Точно ли планировалась такая скорость? Возможно, имелось в виду 115200?

Скорость на шине в web-интерфейсе выставлена 115200, все устройства работают штатно на скорости 115200 на протяжении ~6 месяцев. И продолжают работать и сейчас. Просто появилось предупреждение, которого ранее не было.

Добрый день!

Посовещался с коллегами — рекомендуем дополнительно проверить, уникальны ли топики. В MQTT каждый топик должен быть уникальным для каждого устройства или элемента управления.

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

Какой-нибудь инструмент или метод проверки не подскажете? Физические устройства (из “посторонних” на шинах Modbus есть только 2шт XY-MD04, остальные все WB) подключены через web-интерфейс стандартным функционалом WB, адреса у всех устройств уникальны, топики ведь включают в себя Modbus адрес, соответственно, тоже уникальны.
Визуально на странице “Каналы MQTT” всё Ок.

Добрый день, такая же проблема на 202505120214_testing_bullseye_wb8x.fit

То же самое появилось сегодня после обновления testing
На работу не влияет

Добрый день!

Проверить уникальность топиков и ID можно, например, так:

  1. Посмотреть все ID в конфигурации и отсортировать:
grep '"id"' /etc/wb-mqtt-serial.conf | sort
  1. Отследить все топики и визуально проверить на повторы:
mosquitto_sub -t "/devices/+/controls/#" -v
  1. Я правильно понимаю, что Вы мне предлагаете проверить как сформировался некий внутренний файл в контроллере, и не задублировались ли в нём ID устройств? ID - это адрес Modbus?
    grep '"id"' /etc/wb-mqtt-serial.conf | sort
    Не знаю что тут должно было отсортироваться - вхождение "slave ID" для каждого устройства на шине однократное. Перебрал все имеющиеся.
  2. Отследить визуально в реальном времени все топики? А как понять что это повтор топика, а не публикация нового значения? Да я даже названия прочитывать не успеваю.
    mosquitto_sub -t "/devices/+/controls/#" -v

Добрый день!

  1. Да, всё верно.
  2. В логах или топиках могут появляться данные, не характерные для конкретного устройства — это тоже признак возможного дублирования.
  3. Ещё один способ диагностики — временно отключать или удалять устройства из системы. Если после удаления какого-то устройства проблема исчезает — скорее всего, оно задублировано.

Обсужу с коллегами, как сделать этот процесс более удобным.

А вот такие повторы в wb-mqtt-serial.conf - это нормально?

            {
              "name" : "IN 2 P Resistance",
              "read_period_ms" : 60000
            },
            {
              "enabled" : true,
              "name" : "IN 2 P Resistance",
              "read_period_ms" : 60000
            },
            {
              "name" : "IN 3 N Value",
              "read_period_ms" : 60000
            },
            {
              "name" : "IN 3 N Value",
              "read_period_ms" : 60000
            },
            {
              "name" : "IN 3 N Value",
              "read_period_ms" : 60000
            },
            {
              "name" : "IN 3 N Value",
              "read_period_ms" : 60000
            },

Добрый день.
Да, это имена контролов. Они уникальны только в пределах устройств
Они не должны вызвать ошибку.

Обратите внимание - это повторения в пределах одного устройства. У вас же есть /etc/wb-mqtt-serial.conf в диагностическом архиве. Там у нескольких устройств задвоение имён контролов в пределах одного устройства. В любом случаю я полагаю, что это баг. У меня есть мысли откуда могли взяться эти задвоения - если нужно я опишу.
Но если с этим Ок, тогда пока не знаю что ещё поискать. Отключать устройства нет желания - функционально все устройства работают как ожидается.
Хотел включить отладочные сообщения в web-интерфейсе, а ничего в настройках wb-mqtt-serial сохранить не могу - кнопка Сохранить настройки не активна, а на кнопке Настройки wb-mqtt-serial появляется !.
image

Сегодня после обновления apt update && apt upgrade уведомлений о не уникальности идентификаторов устройств в MQTT больше нет. Настройки wb-mqtt-serial тоже сохранить можно (кнопка Сохранить настройки становится активной).

Добрый день!
Было бы хорошо, если бы вы описали подробнее, как получили данное поведение.
В случае, если это баг, это поможет лучше разобраться и проще воспроизводить.

Имеете ввиду задвоение имён контролов в wb-mqtt-serial.conf?

Да, это помогло бы мне воссоздать данную проблему.
Чем подробнее описано, тем проще локализовать и воспроизвести ошибку.

Пытался повторить, но пока не получилось. Либо в ПО что-то уже изменилось с момента, когда делался монтаж и первоначальные настройки. Настройки устройств делал сначала на stable релизе, потом перешёл на testing. Все настройки делал через web-интерфейс. Сейчас наблюдаю, что задвоение имён контролов в wb-mqtt-serial.conf исчезает при изменении этого контрола, но если настройки контрола не менять - то задвоения есть у многих устройств. Но только у тех контролов, которые я неоднократно перенастраивал в процессе подключения (включал/включал, менял период опроса).