Здравствуйте! Я автоматический помощник техподдержки Wiren Board. Сейчас выходной — я попробую помочь сразу, а в ближайший рабочий день инженеры посмотрят тему и ответят.
Я проанализировал ваш вопрос и постарался найти возможное решение:
Если потребуется дополнителоьное уточнение, приложенную информацию прошу направить нажав ответить на мое крайнее сообщение.
Судя по описанию и логам, у вас:
- Контроллер Wiren Board (по архиву инженеры точно посмотрят модель, предполагаю WB7/8),
- Модуль реле WB-MR6C по Modbus,
- Интеграция с Алисой через стандартный wb-yandex-home (ПУД / Умный дом Яндекса),
- В логах wb-yandex-home или связанного сервиса сообщения вида:
Read topic timeout waiting '/devices/wb-mr6c_39/controls/K5'
no live or retained data — marking DEVICE_UNREACHABLE
- В приложении Яндекса устройства быстро уходят в offline.
Это значит, что интеграция не может получить актуальное значение MQTT‑топика для канала K5 (и, вероятно, других), либо эти топики не помечены как retained / не читаются целиком с MQTT‑шины.
Ниже — базовые проверки, которые вы можете сделать до ответа инженеров.
1. Проверить, что само реле WB-MR6C работает и считывается
На контроллере выполните:
mosquitto_sub -v -t '/devices/wb-mr6c_39/#' -R
и в другом окне:
wb-mqtt-mbgate --list-slaves
или просто переключайте реле K1–K6 через веб-интерфейс (порт 80/81 → Devices → wb-mr6c_39).
Нужно убедиться:
- Что в топиках
/devices/wb-mr6c_39/controls/K5 появляются сообщения при переключении.
- Что нет ошибок типа
Modbus timeout или IO error в логах wb-mqtt-serial:
journalctl -u wb-mqtt-serial -n 100
Если уже на этом уровне модуль читается с ошибками — надо искать причину в линиях RS-485 (адрес, скорость, терминаторы, питание).[^1]
2. Проверить retained-флаги у контролов
Сервис интеграции с Яндексом ожидает, что состояние устройства доступно в retained‑сообщении MQTT. Если retained нет, при подписке он “видит пустоту” и помечает устройство как DEVICE_UNREACHABLE.
Проверьте конфигурацию wb-mqtt-serial для вашего модуля:
ls /etc/wb-mqtt-serial.conf.d/
cat /etc/wb-mqtt-serial.conf.d/your_config.json
В стандартных шаблонах для WB-MR6C контролы типа switch уже публикуются как retained.[^2] Важно, чтобы:
- Модуль действительно использовал стандартный шаблон WB-MR6C,
- Не был отключён параметр publish/retain в json-конфиге.
Проверка retained “в лоб”:
mosquitto_sub -v -t '/devices/wb-mr6c_39/controls/K5' -R
Затем перезапустите wb-mqtt-serial:
service wb-mqtt-serial restart
Если сообщение не приходит вообще (даже одно) — нет retained‑публикации.
3. Проверить настройки интеграции с Алисой
Дальше стоит убедиться, что сам сервис Яндекса на контроллере живой и корректно подключён к MQTT:
- Посмотрите список сервисов:
systemctl status wb-yandex-home wb-cloud-connect wb-mqtt-homeui
(точные имена зависят от версии прошивки, инженеры уточнят по архиву).
- Проверьте логи сервиса интеграции (в котором вы видите
Read topic timeout):
journalctl -u wb-yandex-home -n 100
Обратите внимание:
- На какой MQTT-топик он пытается подписаться (там должен быть
/devices/wb-mr6c_39/controls/K5).
- Нет ли там сообщений про невозможность подключиться к MQTT‑брокеру (mosquitto).
4. Проверить MQTT-брокер и локальные подключения
В логах видно:
New connection from 127.0.0.1:38811 on port 1883.
New client connected from 127.0.0.1:38811 as auto-... (p2, c1, k60).
Это нормальное локальное подключение клиента (вероятно, того самого wb-yandex-home) к встроенному Mosquitto.
Проверьте общую работоспособность MQTT:
mosquitto_sub -v -t '/devices/#' -R | head
Если вы вообще не видите сообщений от устройств (в том числе от других модулей / встроенных GPIO контроллера) — это уже проблема шире, чем интеграция с Алисой.
5. Что ещё важно прислать инженерам
Чтобы они могли быстрее воспроизвести:
- Какой у вас контроллер (модель / ревизия, например WB6, WB7, WB8.5).
- Версия прошивки (из веб-интерфейса → Settings → Firmware, или содержимое
/etc/wb-release).
- Скриншот / текст конфигурации:
/etc/wb-mqtt-serial.conf и файлы в /etc/wb-mqtt-serial.conf.d/,
/etc/wb-cloud-connect.conf / /etc/wb-yandex-home.conf (если есть).
- Вывод:
mosquitto_sub -v -t '/devices/wb-mr6c_39/#' -R -C 20
сразу после перезапуска wb-mqtt-serial.
Можете просто дописать сюда вывод этих команд (текстом), инженеры посмотрят в рабочее время.
По текущему описанию наиболее вероятные причины:
- Либо Modbus‑модуль WB-MR6C реально читается с ошибками (время от времени нет ответа — тогда будут таймауты в
wb-mqtt-serial, а интеграция их транслирует в DEVICE_UNREACHABLE).
- Либо нет / некорр