Добрый день! Прошу прощения за глупый вопрос:
Возникла необходимость коррекции показаний мультидатчика. Сам мультидатчик древний и локальную коррекцию не поддерживает, решил корректировать правилом:
defineRule("reduceTemperature_32", {
whenChanged: "wb-msw2_32/Temperature",
then: function (newValue, devName, cellName) {
var reducedValue = newValue - 2;
dev["wb-msw2_32/Temperature"] = reducedValue;
}
});
Но не получается. Незаписываемый параметр, оказывается:
ERROR: control wb-msw2_32/Temperature SetValue() error: This control is not writable
Чем можно помочь такому горю?
Также пробовал:
defineRule("reduceTemperature", {
whenChanged: "wb-msw2_34/Temperature",
then: function (newValue, devName, cellName) {
var reducedValue = newValue - 2;
publish("wb-msw2_34/Temperature", reducedValue.toString(), {retain: true});
}
});
С тем же печальным результатом…
avspnz
13.Февраль.2024 14:14:43
4
Добрый день.
Можете создать виртуальное устройство и в его контрол записывать пересчитанное значение:
defineVirtualDevice('MSW2', {
cells: {
Temperature: {
title: "Temperature",
type: "value",
value: 0
}
}
})
defineRule("reduceTemperature_32", {
whenChanged: "wb-msw2_34/Temperature",
then: function (newValue, devName, cellName) {
var reducedValue = newValue - 2;
dev["MSW2/Temperature"] = reducedValue;
}
});
Спасибо! Я правильно понимаю, что в тот же топик публиковать - никак невозможно, нарушение системных принципов?
Из консоли пишется, а правилом никак?
avspnz
14.Февраль.2024 11:34:43
6
Да, параметр доступен только для чтения. Собственно об этом и написано в ошибке:
А как ознакомиться со списком незаписываемых контролов?
Чтобы не косячить впредь.
В каком-нибудь конфиге?
avspnz
15.Февраль.2024 08:03:45
8
Можно посмотреть в карте регистров в колонке «Чтение/запись». Для WB-MSW v.2 она находится тут — Управление датчиками Wirenboard по протоколу Modbus — Wiren Board