Отправка команд на WirenBoard через USB (com порт)

Коллеги, добрый день!
Задача - управление WirenBoard по com-порту

Вопрос - как обрабатывать команды, которые приходят по com-порту на WirenBoard?
Нужно прослушивать com-порт, по которому приходят сообщения и парсить информацию.
С другой стороны этот же com-порт используется для отправки телеметрии на com-port компьютера.

Здравствуйте! Тут придется использовать средства и команды Линукс, которые можно вызывать или непосредственно из командной строки или из движка правил.
Вот здесь есть пример:

А вот здесь запись в порт.
https://support.wirenboard.com/t/wiren-board-6-and-mbee-s1g-2-0/8345/15

Вторая ссылка нерабочая.
По чтению из com-порта на WB +- понятно - только штатными средствами системы делать.
Скажем, если я хочу в одном байте присылать команды сразу для нескольких выходных контактов, проще сделать Pythion скрипт, который будет прослушивать порт и выполнять команды mosquitto_sub

Привожу здесь ответ моего коллеги из другой темы (нерабочая ссылка).

Задачи, собственно две.
“Опрос” топиков MQTT и формирование “строки” для отправки.
Реализуется так, например:

//07_12_test_04.js

var collectPeroid = 3000;//время в миллисекундах
var portUART = "/dev/ttyUSB0";//порт

defineRule("collectString",{
  when: function () { return timers.collectData.firing; },
  then: function () {
    var dataString = "";//создадим переменную переменную
    dataString += dev["wb-adc/Vin"].toString()+";"//Формируем строку
    dataString += dev["wb-adc/5Vout"].toString()+";" //Формируем строку
    //log.info("dataString",dataString)
    
    runShellCommand("echo -en "+"\""+dataString+"\""+" > "+portUART,
        {
      captureOutput: true, //Захватывать stdout
      captureErrorOutput: true, //Захватывать stderr (если нужно)
      exitCallback: function (exitCode, capturedOutput, capturedErrorOutput) //Функция, в которую попадает вывод
            {
                //log("cmd output: " + capturedOutput); //строка полностью
                //log("cmd Erroroutput: " + capturedErrorOutput);
              if (exitCode){log.error("При выполнении записи в порт ошибка")}
            }
         })

    
  }
});


startTicker("collectData", collectPeroid);

Вывод в лог можно раскомментировать.

Чем дальше, тем вопросов больше.
На WB штатно стоит 3.5, но без setup tools, что в свою очередь не позволяет установить pip3, через который будем ставить пакет для работы mqtt на WB.

Есть какие-нибудь мысли на этот счет?

Если требуется, то, думаю, можно установить необходимые пакеты: Installing pip/setuptools/wheel with Linux Package Managers — Python Packaging User Guide

Собственно говоря для работы с tty совсем необязательно использовать python. Можно, конечно, но bash более чем достаточен: