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.mdwb-mcu-fw-updater:references/wb-mcu-fw-updater.mdwb-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, затем точечные запросы.