Сложная формула для вычисления значения

Здравствуйте.
Есть wiren board 8, к которому подключен датчик через rs485/modbus. Значения считываются и видны. Но для получения правильного значения нужно применять формулу, см. картинку.

По сути, надо преобразовать полученное значения и записать в топик MQTT новое вычисленное значение.

Как принято решать подобные задачи в wiren board? Есть тут возможность вычисления формул сложнее, чем коэффициент/смещение? Какой инструментарий для этого есть?

Как пример данных, 18089 272.80 46A9 ->4 1705 → 0.01 * (2**4) * 1705==272.80

Добрый день!

Данная задача может быть решена несколькими способами — через Node-RED или с помощью wb-rules с использованием виртуальных устройств.
Выбор зависит от того, какая логика вам удобнее и какая уже используется в системе.

Предположим, в WB8 настроено получение данных в топик “sensor_1/light”. Мы добавляем правило

defineRule("fix_light", {
  whenChanged: "sensor_1/light",
  then: function (newValue, devName, cellName) {
    var v = calcValue(newValue);
    ...
  })

и начинаем получать значения, которые нужно пересчитать по формуле.
Правильно ли я понимаю, что подменить значение топика “sensor_1/light” на вычисленное таким образом мы не можем? И нам надо создать виртуальное устройство с другим топиком, где будет фигурировать наше новое пересчитанное значение?

Или можно подменить значение оригинального топика? Чтобы полученное ранее непересчитанное значение вообще не распространялось по MQTT.

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

Правильно ли я понимаю, что предлагаемый правильный алгоритм таков:

  1. Мы заводим физическое устройство, которое наполняет топики данными на конкретном WB.
  2. Мы добавляем wb-rules, формирующие новое виртуальное устройство, и записываем новые топики на основе топиков физического устройства, проводя необходимые вычисления.
  3. Мы пробрасываем далее по MQTT не всё подряд, а только топики виртуального устройства для дальнейшей обработки и визуализации.

?

Да, все верно.