Не отображаются подключённые к WB устройства в Шлюз MQTT - Modbus RTU/TCP slave

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

Добрый день. В разделе /etc/wb-mqtt-mbgate.conf не отображаются адреса подключенных к WB устройств, только те что есть на самом контроллере. Прошивка самая последняя, контроллер куплен пару месяцев назад. Что можно проверить?

адреса и порты разные пробовал и перезагружал контроллер не раз

Добрый день!
Судя по вашим логам и описанию, контроллер испытывает проблемы с коммуникацией по шине RS-485, что приводит к тому, что адреса подключенных устройств не отображаются в конфигурационном файле /etc/wb-mqtt-mbgate.conf.

  1. Убедитесь, что все пакеты и прошивка контроллера обновлены до последних версий, выполнив команды apt update && apt upgrade.
  2. Проверьте физическое подключение
  3. Проверьте настройки последовательного порта: В логах указано, что используется порт /dev/ttyRS485-1 с параметрами 9600 8 N 2. Убедитесь, что эти настройки соответствуют настройкам ваших устройств.
  4. Убедитесь, что на шине нет устройств с одинаковыми адресами, что может вызвать конфликт. Если возможно, отключите все устройства и подключайте их по одному, проверяя работу каждого в отдельности.
  5. Проверьте работу Modbus TCP устройств: В логах есть ошибка failed to read 8 coil(s) @ 0 of device modbus_io-tcp:64:1: Serial protocol error: request timed out, что может указывать на проблемы с устройствами Modbus TCP.

5 пункт - отключил фиически, перезагрузил - не помогло
всё остальное делал и не раз(

физически всё работает отлично, без задержек и т.п.


добавил вручную канал, но не появился у него тип

подскажете что ещё проверить? сами настройки порта какие нужно указать? у меня указаны localhost и 1883

на странице Шлюз Modbus RTU/TCP - Wiren Board нашел надпись - Обратите внимание, что порт, выбранный для работы в режиме Modbus-slave, не должен использоваться в настройках опроса драйвера wb-mqtt-serial!?, не совсем понятно что это значит и как проверить

в других шлюзах - mqtt настройках отображаются все каналы

на всякий случай ещё раз поставил актуальную прошивку, ничего не изменилось

Добрый день
Если один и тот же порт RS-485 используется одновременно для опроса устройств (через wb-mqtt-serial) и для работы в режиме Modbus-slave (через wb-mqtt-mbgate), это вызывает конфликт, и устройства могут не отображаться или работать некорректно.
Рекомендую для решения проблемы изменить порт и проверить работоспособность системы.

а где поменять выбор порта для /etc/wb-mqtt-mbgate.conf? там нет настроек для смены

разве modbus tcp не через ethernet работает? во всяком случае у меня сейчас подключение к контроллеру loxone сделано именно через ethernet и получается управлять тем же буззером

и при этом в “Шлюз MQTT - МЭК 60870-5-104” и “Шлюз MQTT - OPC UA” каналы всех устройств отображаются.

опять же, в инструкции Шлюз Modbus RTU/TCP — Wiren Board написано что параметры по умолчанию должны быть:
localhost
Адрес брокера MQTT
1883
Порт брокера MQTT

сейчас подключился к другим контроллерам, там везде:
/var/run/mosquitto/mosquitto.sock
Адрес брокера MQTT
0
Порт брокера MQTT

так где правильно, в инструкции или в настройках контроллера после сброса?

на странице GitHub - wirenboard/wb-mqtt-mbgate: Modbus TCP to MQTT gate for Wiren Board написано: (Для того, чтобы увидеть изменения адресов, следует перезагрузить конфигурационный файл после сохранения. Возможно, на подготовку нового файла конфигурации потребуется некоторое время). Как перезагрузить не нашел и сколько обычно времени уходит на подготовку? Ну и самое главное из сообщения выше - какие параметры указать в настройках шлюза, потому что в инструкции одно а по факту другое

Очень нужна помощь, работа буквально стоит((

Здравствуйте!

Думаю, проблема отсутствия каналов в конфигурации wb-mqtt-mbgate должна решаться перегенерацией конфигурационного файла.

Тут обнаружили баг - нет галки перегенерации в интерфейсе.

Это исправят, но сейчас, чтобы быстрее решить проблему, можно добавить этот параметр вручную в файл /etc/wb-mqtt-mbgate.conf - добавить строку "regenerate_config": false,

Начало файла будет выглядеть вот так:

{
 "debug": false,
 "regenerate_config": false,
 "modbus": {

Должна будет появиться опция перегенерации:

1 лайк