wb-mqtt-serial не выполняет команды на всех WB-MR6C v.3 (WB8). Состояние публикуется, команды игнорируются.

Здравствуйте.
На Wiren Board 8 (версия ПО WB-2501) возникает проблема с работой wb-mqtt-serial для всех модулей WB-MR6C v3 (у меня установлено 11 штук).
Симптом одинаковый для всех модулей:
wb-mqtt-serial корректно анонсирует устройства
публикует все топики состояния
MQTT работает, allow_writes=true
команды по MQTT доходят до wb-mqtt-serial
wb-mqtt-serial реагирует на них (публикует Bus Power Supply)
НО Modbus WRITE не выполняется, реле физически не переключаются
Если включать реле через WebUI Wiren Board — всё работает, Modbus исправен.
Проблема затрагивает ВСЕ модули MR6C v3, а не один slave_id.
Похоже на общий баг обработчика командного топика в wb-mqtt-serial на прошивке WB-2501 (WB8).
Проверено:
mosquitto работает, test publish/subscribe успешные
allow_writes=true
unsupported_channels удалены
Home Assistant отключён полностью
Топики команд и состояния правильные
Через WebUI модули управляются идеально
Через MQTT — состояние публикуется, команда игнорируется всеми 11 модулями
Просьба подсказать патч, обновление или workaround для WB-MR6C v3 на WB8.
Готов предоставить логи, дамп RS-485 и выполнить тестовые команды.
Спасибо!

Дополнение к моему обращению.
Нашёл на форуме вашу старую тему (2020 год), где была точно такая же ситуация:
MQTT-команда приходит, значение в WebUI меняется, но реле физически не переключается.
Там проблема решилась, когда пользователь стал публиковать команду в правильный топик (controls/K1/on).
В моём случае ситуация другая и более серьёзная:
я публикую в правильный топик devices/wb-mr6c_v3_XX/controls/K1/on
wb-mqtt-serial видит команду (публикует Bus Power Supply)
но Modbus WRITE не выполняется
реле физически не включаются.
MQTT работает корректно, allow_writes включён, Discovery чистый, конфигурации актуальные.
Через WebUI Wiren Board все реле работают нормально, Modbus исправен.
Похоже на проблему в wb-mqtt-serial или его обработке входящих команд именно на WB8 (версия ПО WB-2501).
Прошу проверить, возможно ли воспроизведение данной ситуации у вас и есть ли патч/обходное решение.

Добрый день.
Подпишитесь на топик рекурсивно, пожалуйста и покажите что туда публикуется. Ну и, отдельно, что публикуется при управлении штатным интерфейсом или из правил.

Добрый день.
Я выполнил вашу просьбу — подписался на devices/# и записал логи для двух случаев:
Включение реле через MQTT
Команда:
mosquitto_pub -h 127.0.0.1 -t “devices/wb-mr6cv3_25/controls/K1/on” -m “1”
В подписке видно, что сообщение приходит в command_topic, но реле физически не переключается.
Включение реле через WebUI Wiren Board
При переключении K1 через WebUI в подписке появляются строки:
devices/wb-mr6cv3_25/controls/K1 1 и devices/wb-mr6cv3_25/controls/K1 0
Здесь реле физически включается/выключается.
Таким образом, MQTT-команды до брокера доходят, топики правильные, allow_writes=true, но wb-mqtt-serial не выполняет Modbus WRITE по command_topic.

Как минимум тут ошибка:

Все описанные в конвенции топики начинаются с ‘/’.
Покажите пожалуйста результат подписки в текстовом виде, не надо скриншотов.

Для_ТехПоддержки_WB.txt (380,9 КБ)
Для_ТехПоддержки_WB (2).txt (8,2 КБ)

В первом файле я вижу
как включение

/devices/wb-mr6cv3_25/controls/K1/on 1
/devices/wb-mr6cv3_25/controls/K1 1

так и выключение

/devices/wb-mr6cv3_25/controls/K1/on 0
/devices/wb-mr6cv3_25/controls/K1 0

Во втором не вижу публикаций в /on топик

Здравствуйте, команда поддержки Wiren Board
В связи с тем что у меня нет ежедневного доступа к контроллеру. Проблема была воспроизведена на абсолютно новом
контроллере Wiren Board 8, но ради эксперимента изначально решил попробовать в режиме testing чтобы исключить влияние старых конфигураций. При этом проблема изменилась.

Суть проблемы:
Сервис wb-mqtt-serial не публикует конфигурационные сообщения в топик
homeassistant/, несмотря на наличие соответствующей настройки в
/etc/wb-mqtt-serial.conf. В результате Home Assistant не может автоматически
обнаружить подключенные к контроллеру Modbus-устройства.

Информация о системе:

  • Контроллер: Wiren Board 8
  • Релиз: testing (RELEASE_NAME=unstable.latest, SUITE=testing,
    TARGET=wb8/bullseye)
  • Home Assistant: последняя версия, установленная в Docker на этом же
    контроллере.

Шаги для воспроизведения:

  1. Был взят новый контроллер WB8, обновлен до testing релиза.
  2. Установлен Docker и Home Assistant.
  3. В Home Assistant настроена интеграция MQTT для подключения к локальному
    брокеру (192.168.0.11:1883).
  4. В файл /etc/wb-mqtt-serial.conf были добавлены настройки для обнаружения в
    Home Assistant и описание устройства (модуль WB-MR6C v.3 с slave_id: 21 на
    порту /dev/ttyRS485-1).
  5. С помощью утилиты wb-modbus-scanner было подтверждено, что контроллер
    успешно видит модуль на шине с адресом 21 и скоростью 115200.
  6. Сервис wb-mqtt-serial был перезапущен. Логи показывают, что он успешно
    подключается к устройству.
  7. Результат: Устройство не появляется в Home Assistant. Прослушивание топика
    homeassistant/# с помощью mosquitto_sub показало, что wb-mqtt-serial не
    отправляет никаких сообщений в этот топик при старте.

Рабочее решение (обходной путь):
Проблема решается путем ручного добавления устройств в configuration.yaml Home
Assistant. Это подтверждает, что базовая MQTT-связь с устройством (чтение
состояний и отправка команд) работает корректно.

Вывод:
Проблема заключается именно в функции MQTT Discovery службы wb-mqtt-serial в
testing-релизе.

Ниже приведена итоговая рабочая конфигурация /etc/wb-mqtt-serial.conf:

1 {
2   "debug": false,
3   "homeassistant_discovery_prefix": "homeassistant",
4   "ports": [
5     {
6       "baud_rate": 115200,
7       "data_bits": 8,
8       "devices": [
9         {

10 “slave_id”: “21”,
11 “device_type”: “WB-MR6C v.3”
12 }
13 ],
14 “enabled”: true,
15 “parity”: “N”,
16 “path”: “/dev/ttyRS485-1”,
17 “stop_bits”: 1
18 },
19 {
20 “baud_rate”: 9600,
21 “data_bits”: 8,
22 “devices”: ,
23 “enabled”: true,
24 “parity”: “N”,
25 “path”: “/dev/ttyRS485-2”,
26 “stop_bits”: 2
27 }
28 ]
29 }

Надеюсь, эта информация поможет в диагностике и исправлении проблемы. Спасибо!

Добрый день.

Да, у меня есть аналогичная конфигурация.

Вот тут не очень понятно. На основании какой документации ожидаете публикацию сервисом wb-mqtt-serial чего-то в топик HA?

Именно это описано в Установка Home Assistant на контроллер Wiren Board — Wiren Board

Такой функции в сервисе нет.