Как работать с базой данных HIstory. wb-mqtt-db

если в консоли: используем команду вида
wb-mqtt-db-cli -h 127.0.0.1 --from '2020-06-16 09:06:30' --to '2020-06-18' --limit 1 -d';' wb-adc/5Vout |tail -1 | cut -f 3 -d';'
для нужного устройства, периода времени (период - можно указывать переменными ессно).
tail -1 | cut -f 3 -d’;’ - вернет третье (среднее значение параметра за период) поле второй (последней) строки

В скрипте пользоваться так:

    runShellCommand("wb-mqtt-db-cli -h 127.0.0.1 --from '2020-06-16 09:06:30' --to '2020-06-18' --limit 1 -d';' wb-adc/5Vout |tail -1 | cut -f 3 -d';'",
        {
      captureOutput: true, //Захватывать stdout
      captureErrorOutput: true, //Захватывать stderr (если нужно)
      exitCallback: function (exitCode, capturedOutput, capturedErrorOutput) //Функция, в которую попадает вывод
            {
                log("cmd output: " + capturedOutput); //Делаем с данными что угодно(в переменную, например)
                log("cmd Erroroutput: " + capturedErrorOutput);
            }
         })

Еще один вариант, предложенный настоящим гуру:

  // Запуск shell-команды с запросом в историю
    runShellCommand("wb-mqtt-db-cli -h 127.0.0.1 --from '2020-06-11 09:06:30' --to '2020-06-18' --limit 1 -d';' wb-adc/5Vout |tail -1",
        {
      captureOutput: true, //Захватывать stdout
      captureErrorOutput: true, //Захватывать stderr (если нужно)
      exitCallback: function (exitCode, capturedOutput, capturedErrorOutput) //Функция, в которую попадает вывод
            {
                log("cmd output: " + capturedOutput); //строка полностью
              	log("channel: " +capturedOutput.split(";")[0]) // channel
				log("time: " +capturedOutput.split(";")[1]) // time
				log("average: " +capturedOutput.split(";")[2]) // average
				log("min: " +capturedOutput.split(";")[3]) // min
				log("max: " +capturedOutput.split(";")[4]) // max
                log("cmd Erroroutput: " + capturedErrorOutput);
            }
         })
2 лайка