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

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

Задачи, собственно две.
“Опрос” топиков 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);

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