Здравствуйте.
На 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 на этом же
контроллере.
Шаги для воспроизведения:
- Был взят новый контроллер WB8, обновлен до testing релиза.
- Установлен Docker и Home Assistant.
- В Home Assistant настроена интеграция MQTT для подключения к локальному
брокеру (192.168.0.11:1883). - В файл /etc/wb-mqtt-serial.conf были добавлены настройки для обнаружения в
Home Assistant и описание устройства (модуль WB-MR6C v.3 с slave_id: 21 на
порту /dev/ttyRS485-1). - С помощью утилиты wb-modbus-scanner было подтверждено, что контроллер
успешно видит модуль на шине с адресом 21 и скоростью 115200. - Сервис wb-mqtt-serial был перезапущен. Логи показывают, что он успешно
подключается к устройству. - Результат: Устройство не появляется в 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
Такой функции в сервисе нет.








