Десятые в контролах range

Добрый день! В последних версиях ПО есть ли возможность сделать в контролах range виртуальных устройств значения в десятичных долях? Температуру задавать, давление и пр. величины.

Добрый день, не совсем понимаю вопрос.
Вам необходимо отображение данные с отсечкой до десятых долей вместо сотых?

Есть виртуальное устройство с контролем для задания уставки по температуре.

Спойлер
	"SetPoint": {
		title: "Температура",
		type:"range",
		value: 25,
		max: 25,
		min: 0,
        readonly: true
	},

Как в нем сделать, чтобы можно было с десятыми долями задавать значение?

(Контрол привел для примера)

Спасибо за разъяснение.
Бегунком регулировать у меня регулировать не вышло.
Могу предложить для более точной подстройки использовать вариант с добавлением к значению нужного значения в десятых.
изображение

// Функция для корректного округления до одного знака после запятой
function roundToOneDecimal(value) {
    return Math.round(value * 10) / 10;
}

// Создание виртуального устройства с контролом температуры и двумя кнопками
defineVirtualDevice("test_device", {
    title: "Тестовое устройство",
    cells: {
        SetPoint: {
            type: "range",
            value: 22.5,
            max: 25.0,
            min: 0.0,
            step: 0.1,
            readonly: false
        },
        AddValueButton: {
            type: "pushbutton", // Кнопка +0.1
            value: false,
            title: "+0.1"
        },
        SubtractValueButton: {
            type: "pushbutton", // Кнопка -0.1
            value: false,
            title: "-0.1"
        }
    }
});

// Правило для обработки нажатия на кнопку добавления +0.1
defineRule("add_value_button_pressed", {
    whenChanged: "test_device/AddValueButton",
    then: function (newValue, devName, cellName) {
        if (newValue) {
            var currentTemp = dev["test_device"]["SetPoint"];
            var newTemp = currentTemp + 0.1;

            // Проверка на пределы значений (max)
            if (newTemp > 25.0) {
                newTemp = 25.0;
            }

            // Округление значения до одного знака после запятой
            newTemp = roundToOneDecimal(newTemp);

            // Установка нового значения температуры
            dev["test_device"]["SetPoint"] = newTemp;

            log.info("Значение температуры увеличено на 0.1. Новое значение: " + newTemp + " °C");
        }
    }
});

// Правило для обработки нажатия на кнопку уменьшения -0.1
defineRule("subtract_value_button_pressed", {
    whenChanged: "test_device/SubtractValueButton",
    then: function (newValue, devName, cellName) {
        if (newValue) {
            var currentTemp = dev["test_device"]["SetPoint"];
            var newTemp = currentTemp - 0.1;

            // Проверка на пределы значений (min)
            if (newTemp < 0.0) {
                newTemp = 0.0;
            }

            // Округление значения до одного знака после запятой
            newTemp = roundToOneDecimal(newTemp);

            // Установка нового значения температуры
            dev["test_device"]["SetPoint"] = newTemp;

            log.info("Значение температуры уменьшено на 0.1. Новое значение: " + newTemp + " °C");
        }
    }
});

Загрузка: изображение.png(1)…

Ясно, спасибо за помощь, подумаю. Я тоже пробовал методом тыка разные свойства задавать - не вышло.

В принципе, для температуры в помещении это не так критично (хотя 0.5 градуса можно), а вот для давления воды - вполне логично. Можно конечно в килопаскалях задавать, но такое себе.

Оставьте как пожелание на будущее пожалуйста)

Из вариаций можно отображать давление в барах, а бегунок в килопаскалях.
Пожелание направлено разработчикам.

1 лайк