wb-devs

star 0

Работать локально на контроллере 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", "прошить/восстановить устройство".

wirenboard By wirenboard schedule Updated 3/23/2026

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 и нужна для подбора совместимой прошивки.

Эффективный порядок поиска устройств на шине

Использовать каскад, а не сразу полный перебор адресов.

  1. Сначала быстро проверить, что уже известно системе:
    • конфиг /etc/wb-mqtt-serial.conf и /etc/wb-mqtt-serial.conf.d/
    • логи journalctl -u wb-mqtt-serial
    • MQTT-топики /devices/#, если драйвер уже публикует данные
  2. Если пользователь запросил поиск или сканирование шины, после этого pre-check обязательно перейти к активной проверке шины; не завершать задачу только на основании конфига, логов или MQTT.
  3. Если нужны именно WB/Fast Modbus устройства, основной активный поиск это wb-modbus-scanner.
  4. Первый запуск сканера делать с коротким таймаутом 6s.
  5. Если с предполагаемыми параметрами ничего не найдено, сначала спросить пользователя, стоит ли повторить сканирование с другими настройками: другой порт, другая скорость, другой тип устройства.
  6. Если и после этого нужен более долгий прогон, спросить пользователя, стоит ли ждать дольше, прежде чем увеличивать таймаут.
  7. Флаг -L не использовать без явного разрешения пользователя: это deprecated-режим, и он тратит дополнительное время.
  8. Если известны предполагаемые slave_id, сначала делать точечные запросы через modbus_client или modbus_client_rpc.
  9. Перед полным brute-force 1..246 спросить пользователя, готов ли он тратить на это время.
  10. 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, затем точечные запросы.
Install via CLI
npx skills add https://github.com/wirenboard/wb-openclaw-skills --skill wb-devs
Repository Details
star Stars 0
call_split Forks 1
navigation Branch main
article Path SKILL.md
More from Creator