Возможно ли прямое чтение данных с WBIO-DI-WD-14?

Добрый день!

Существует ли возможность получить данные от WBIO-DI-WD-14 без регистрации его через веб-интерфейс, обращаясь к нему напрямую (например, в программе на C++)?

Здравствуйте! Я автоматический помощник техподдержки Wiren Board. Сейчас выходной — я попробую помочь сразу, а в ближайший рабочий день инженеры посмотрят тему и ответят.
Я проанализировал ваш вопрос и постарался найти возможное решение:
Если потребуется дополнителоьное уточнение, приложенную информацию прошу направить нажав ответить на мое крайнее сообщение


Речь идёт о модуле расширения WBIO-DI-WD-14 (сухие контакты, входы DI, интерфейс RS‑485 к контроллеру WB через шину WBIO).

Короткий ответ:
Напрямую, минуя контроллер и стандартный драйвер (wb-homa-gpio / wb-mqtt-gpio), модуль не предназначен для опроса. Нормальный путь — чтение его состояний через контроллер (например, WB8) по MQTT или через файлы в /sys / /dev, уже после настройки в системе.

Варианты доступа к данным

  1. Стандартный способ (рекомендуется)

    1. Зарегистрировать модуль в веб-интерфейсе (вкладка Hardware modules / Конфигурация оборудования).
    2. Модуль будет доступен:
      • по MQTT в топиках вида wb-gpio/<имя_порта>/input/<номер>[1],
      • или через sysfs (если используется wb-homa-gpio / wb-mqtt-gpio).
    3. Ваша C++‑программа может:
      • подписываться на MQTT (libmosquitto / Paho и т.п.),
      • либо читать состояния из файлов в /sys/class/… (зависит от конкретной версии прошивки и драйвера).
  2. Без “веб-регистрации”, но всё равно через контроллер
    Если цель — просто не использовать веб-интерфейс, а настроить всё “вручную”, можно:

    • создать/править конфиг драйвера напрямую (например, для wb-mqtt-gpio в /etc/wb-mqtt-gpio.conf или соответствующем файле в /etc/wb-mqtt-conf.d/),
    • перезапустить сервис.
      Тогда wb-mqtt‑драйвер поднимет нужные каналы, а вы будете читать их из MQTT / sysfs, не заходя в веб-интерфейс. Фактически это то же самое, только без UI.
  3. Совсем “напрямую” (мимо стандартного стека)

    • WBIO‑модули подключены к контроллеру по внутренней шине (SPI/RS‑485 + защёлка, в зависимости от конкретной серии), протокол закрыт в том смысле, что официально не документирован для пользовательского кода.
    • Подключить WBIO-DI-WD-14, скажем, к “левому” RS‑485 и опрашивать его произвольным протоколом из C++ — не предусмотрено и официально не поддерживается.
    • На уровне Linux вы можете, теоретически, написать свой низкоуровневый драйвер / программу, которая будет работать с тем же интерфейсом, что и родной драйвер, но это уже “хакинг” и вне зоны типовой поддержки.

Практически, что сделать для C++

Если ваша цель — опрашивать входы в программе C++ на контроллере:

  1. Один раз настроить модуль:
    • через веб‑интерфейс или через правку конфигов вручную.
  2. В C++:
    • использовать MQTT‑клиент (подписка на топики с входами),
    • либо читать значения из /sys (или /var/lib/wb-mqtt-… — зависит от прошивки).

Если вы планируете подключать модуль без контроллера Wiren Board (к своему устройству/ПК) — напишите, пожалуйста, подробнее, к какому железу и как вы хотите его подключить. Это принципиально меняет ответ.


Если уточните:

  • какой именно контроллер Wiren Board используете (WB8, WB7 и т.п.),
  • нужно ли запускать C++ прямо на контроллере или на внешнем ПК,

я смогу предложить более конкретный пример (структура MQTT‑топиков или, при необходимости, пример простого C++‑клиента).

Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности.


  1. Универсальный модуль дискретных входов (WBIO-DI-WD-14) — Wiren Board ↩︎

Как можно прочитать состояние входов на WB7 из файловой системы минуя MQTT?

Добрый день!

Штатного и описанного способа получения данных нет.

Прошу уточнить, какую задачу вы решаете и почему не подходят стандартные средства взаимодействия.

Добрый, я рассчитываю получить более быструю реакцию на изменения без промежуточного звена в виде MQTT.

Добрый день.
WBIO (если говорить про актуальные модули) - обычные расширители ввода-вывода на шине i2c.
В зависимости от модуля PCF8574/PCA9555/MCP23017
Ну и можно с ними работать просто как с i2c устройствами.

2 лайка