| name | wb-devs |
| description | Работать локально на контроллере Wiren Board с Modbus RTU/TCP и RS-485: диагностика systemd/journalctl/MQTT, чтение/запись регистров, скан шины, поиск конфликтов slave ID, смена адресов и безопасные сценарии прошивки/восстановления через modbus_client/modbus_client_rpc, wb-modbus-scanner, wb-mcu-fw-updater, wb-mcu-fw-flasher. Использовать для задач: "остановить/запустить wb-mqtt-serial", "прочитать/записать Modbus регистр", "скан RS-485", "дубликаты Modbus ID", "прошить/восстановить устройство". |
WB Dev Access
Использовать этот skill как входную точку для работы с Wiren Board контроллером и Modbus-устройствами: подключение, диагностика, опрос по Modbus, сканирование шины, обновление прошивок.
Цель: быстро выбрать правильный инструмент, помнить про “владение” RS-485 портом, и открыть нужный reference с примерами и флагами.
По умолчанию команды выполняются локально на самом контроллере Wiren Board. SSH нужен только в отдельном сценарии, когда целевой контроллер удаленный по сети.
Быстрый старт: выбор инструмента
- Быстро понять, что реально есть на шине: сначала проверить конфиг
wb-mqtt-serial и его логи, затем запускать активный поиск. Это почти всегда быстрее и информативнее, чем сразу сканировать или делать brute-force.
- Если пользователь просит именно сканирование шины, не ограничиваться конфигом, логами или MQTT: они помогают выбрать следующий шаг, но не заменяют активную проверку шины, потому что настройки могут быть неактуальны.
- Прочитать/записать регистр без остановки драйвера: начать с
modbus_client_rpc (через wb-mqtt-serial), см. references/modbus_client.md.
- Нужна “чистая” диагностика линии, конфликт/дубликаты адресов, нестабильная связь: остановить
wb-mqtt-serial и использовать modbus_client, см. references/modbus_client.md.
- Быстро найти устройства, увидеть серийники, найти дубликаты Modbus ID, сменить ID по серийному: остановить
wb-mqtt-serial и использовать wb-modbus-scanner, см. references/wb-modbus-scanner.md.
- Обновление прошивок штатно на контроллере (обычно нужен интернет):
wb-mcu-fw-updater, см. references/wb-mcu-fw-updater.md.
- Нет интернета, прошивка из
.wbfw, прошивка “за шлюзом”, сервисные операции: wb-mcu-fw-flasher, см. references/wb-mcu-fw-flasher.md.
Основные утилиты (когда и зачем)
systemctl / journalctl / dmesg: остановить/запустить wb-mqtt-serial, собрать диагностику. См. references/systemd-and-logs.md.
mosquitto_sub / mosquitto_pub: проверить, что драйвер публикует данные и ошибки в MQTT (часто быстрее, чем лезть в RS-485). См. references/mqtt.md.
modbus_client: прямой Modbus RTU/TCP (точечная проверка связи, чтение/запись регистров, “чистая” диагностика линии). Обычно требует освободить порт (остановить wb-mqtt-serial). См. references/modbus_client.md.
modbus_client_rpc: тот же синтаксис, но через wb-mqtt-serial (когда нельзя останавливать wb-mqtt-serial). См. references/modbus_client.md.
wb-modbus-scanner: быстрый Fast Modbus сканер (найти устройства, серийники, дубликаты ID, сменить ID по серийному). Требует свободный порт. См. references/wb-modbus-scanner.md.
wb-mcu-fw-updater: авто-обновление/восстановление прошивок на контроллере (есть “опасные” флаги типа сброса настроек). См. references/wb-mcu-fw-updater.md.
wb-mcu-fw-flasher: ручная прошивка/сервисные операции. Также полезен для запроса метаданных устройства/прошивки через --get-device-info. См. references/wb-mcu-fw-flasher.md.
Что уточнить при работе с устройством
- Куда подключен: Modbus RTU (выяснить какой порт из
/dev/ttyRS485-*) или Modbus TCP (endpoint/шлюз), или это не Modbus устройство.
- Modbus slave ID (если неизвестен: начать со скана/поиска, но помнить, что сканер не всегда надёжен).
- Не путай сигнатуры: модель/
device_signature читается из регистра 200 и нужна для идентификации устройства и template matching, а Firmware signature читается из 290..301 и нужна для подбора совместимой прошивки.
Эффективный порядок поиска устройств на шине
Использовать каскад, а не сразу полный перебор адресов.
- Сначала быстро проверить, что уже известно системе:
- конфиг
/etc/wb-mqtt-serial.conf и /etc/wb-mqtt-serial.conf.d/
- логи
journalctl -u wb-mqtt-serial
- MQTT-топики
/devices/#, если драйвер уже публикует данные
- Если пользователь запросил поиск или сканирование шины, после этого pre-check обязательно перейти к активной проверке шины; не завершать задачу только на основании конфига, логов или MQTT.
- Если нужны именно WB/Fast Modbus устройства, основной активный поиск это
wb-modbus-scanner.
- Первый запуск сканера делать с коротким таймаутом
6s.
- Если с предполагаемыми параметрами ничего не найдено, сначала спросить пользователя, стоит ли повторить сканирование с другими настройками: другой порт, другая скорость, другой тип устройства.
- Если и после этого нужен более долгий прогон, спросить пользователя, стоит ли ждать дольше, прежде чем увеличивать таймаут.
- Флаг
-L не использовать без явного разрешения пользователя: это deprecated-режим, и он тратит дополнительное время.
- Если известны предполагаемые
slave_id, сначала делать точечные запросы через modbus_client или modbus_client_rpc.
- Перед полным brute-force
1..246 спросить пользователя, готов ли он тратить на это время.
- Brute-force
1..246 использовать только как последний шаг, по возможности сужая диапазон адресов и список скоростей.
Отдельно разделять сценарии:
- “Понять, какие устройства уже настроены” -> конфиг + логи + MQTT.
- “Найти неизвестные WB-устройства” -> pre-check, затем
wb-modbus-scanner.
- “Найти произвольное стороннее Modbus-устройство” -> точечные запросы по вероятным адресам/скоростям, затем ограниченный перебор.
Важное правило: RS-485 порт и wb-mqtt-serial
- Не работай одновременно с одним и тем же RS-485 портом из нескольких процессов.
- Для работы с Modbus RTU устройствами выбирать драйвер один из
/dev/ttyRS485-*, параметры соединения: всегда 8N2, скорость по умолчанию 9600, иногда 115200.
- Для прямой работы с Modbus RTU обычно нужно остановить
wb-mqtt-serial, затем обязательно запустить обратно (см. references/systemd-and-logs.md).
- Если нельзя выключать
wb-mqtt-serial: использовать modbus_client_rpc (см. references/modbus_client.md).
Навигация (references и скрипты)
- Система контроллера, разделы, home-каталоги, размещение утилит:
references/controller-system.md
- Сервисы и логи (включая
wb-mqtt-serial): references/systemd-and-logs.md
- MQTT диагностика:
references/mqtt.md
modbus_client / modbus_client_rpc: references/modbus_client.md
- Общие регистры WB-устройств:
references/common-modbus-registers.md
wb-modbus-scanner: references/wb-modbus-scanner.md
wb-mcu-fw-updater: references/wb-mcu-fw-updater.md
wb-mcu-fw-flasher: references/wb-mcu-fw-flasher.md
- Практический пошаговый прогон:
references/practice-runbook.md
Скрипты (quick helpers)
- получить подробную инфу по устройству через Modbus Registers (модель/версия/серийник/boot/uptime/питание):
scripts/get_modbus_device_info.sh
- найти устройства на шине “в лоб” перебором адресов (если
wb-modbus-scanner не находит): scripts/find_modbus_slave.sh
Частые ошибки
- “В MQTT устройство видно, значит оно подключено”: не всегда. Проверять физику лучше точечным запросом по Modbus (
modbus_client) или сканом wb-modbus-scanner (но помнить, что сканер не всегда находит). См. references/mqtt.md, references/modbus_client.md, references/wb-modbus-scanner.md.
- Сразу запускать полный перебор адресов: это редко самый эффективный путь. Сначала конфиг и логи, затем короткий
wb-modbus-scanner, затем точечные запросы.