Здравствуйте. Есть такой скрипт:
// --- Управление теплыми полами ---//
// Виртуальное устройство выставления желаемой температуры
var deviceName1 = 'hot-floor-1';
defineVirtualDevice(deviceName1, {
title: 'Теплый пол гостиная',
cells: {
value: {
title: 'Температура, °С',
type: 'range',
value: 22,
max: 40,
min: 1,
readonly: false
},
mode: {
title: 'Режим',
type: 'text',
value: 'off',
readonly: false
},
temp: { // Тестовые данные
title: 'Температура',
type: 'text',
value: '20',
readonly: false
}
}
});
// Открытие/закрытие сервоприводов на гребенке
defineRule('temperature_control', {
whenChanged: ['hot-floor-1/temp', 'hot-floor-1/value', 'hot-floor-1/mode'],
then: function () {
var servoRelay = 'wb-mr6c_14/K2'; // Контрол управляемого реле, смотреть Настройки->Каналы MQTT
var currentTemp = dev['hot-floor-1/temp']; // Контрол датчика температуры
var targetTemp = dev['hot-floor-1/value']; // Контрол желаемой температуры
var mode = dev['hot-floor-1/mode']; // Контрол режима работы обогрев (обогрев/выкл)
// Режим выключен → реле всегда выключено
if (mode === 'off') {
dev[servoRelay] = false;
mode = 'off';
return;
}
if (currentTemp >= targetTemp) { // Размыкание реле, если измеряемая температура больше или равна заданной
dev[servoRelay] = false;
} else { // Замыкание реле, если мзмеряемая температура меньше заданной
dev[servoRelay] = true;
}
}
});
В консоли отправляю mosquitto_pub -t "/devices/hot-floor-1/controls/value" -m 25
но реле не срабатывает, после обновления страницы Устройства данные в hot-floor-1/value слетают до выставленных ранее. В чем может быть проблема?