Округление виртуального параметра

Добрый день.
Заведен виртуальный параметр с округлением до десятого знака:

    oxygen: {
        type: "value",
        value: 0,
        round_to: 0.1

В интерфейсе отображается сильно больше знаков после запятой:

2020-02-17_130211

Как победить проблему с округлением?

Добрый день. В текущей версии движка правил данный параметр не поддерживается. Можно округлять в ручную. через правила. На пример: создайте второй виртуальный девайс, в который будут прилетать не округленные значения. Дальше округлив это значение записывайте в нужный девайс.

defineVirtualDevice("virtualDevice", {
    title: "oxygen",
    cells: {
        oxygenRaw: {
            type: "value",
            value: 0.1010101,
        },
        oxygen: {
            type: "value",
            value: 0.1,
        },
    }
});

defineRule("roundOxygen", {
    whenChanged: "virtualDevice/oxygenRaw",
    then: function(newValue, devName, cellName) {
        dev["virtualDevice"]["oxygen"] = parseFloat(newValue).toFixed(1)
    }
});

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

defineVirtualDevice("wb-msw-v3_1", {
    title: "Pirometr_Ax1",
    cells: {
        Temperature: {
            type: "temperature",
            value: 0.11,
            readonly: true
        }
    }
});

function map(x, in_min, in_max, out_min, out_max) {
    var result = (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
    return result;
}



defineRule("Mode", {
    whenChanged: "wb-adc/EXT1_A1",
    then: function(newValue, devName, cellName) {
			temp = map(newValue, 4, 20, -50, 0);
      		dev['wb-msw-v3_1']['Temperature'] = parseFloat(temp).toFixed(2);
    }
});

Здравствуйте!

Некорректно объявлена переменная temp, а для округления попробуйте использовать такую конструкцию:

defineRule("Mode", {
    whenChanged: "wb-adc/EXT1_A1",
    then: function(newValue, devName, cellName) {
			var temp = map(newValue, 4, 20, -50, 0);
      		dev['wb-msw-v3_1']['Temperature'] = parseFloat(temp.toFixed(2));
    }
});

1 Like