I
Добрый день. Обработчики устройства работают в рамках одного устройства, не имеют доступ к другим устройствам.
Кроме обработчиков устройства, в системе есть другие виды скриптов:
Общие концепции - > Скрипты
В данном случае нужно использовать сценарий
"Сценарии запускаются по событиям устройств, по расписанию. Могут работать с несколькими (многими) устройствами и слушать их события."
/**
* @desc
* @version 5
*/
const m1 = Device("Meter_001");
const m2 = Device("Meter_002");
const m3 = Device("Meter_003");
const script = {
start() {
m3.assign('P0', m1.P0+m2.P0); // В счетчике Meter_003.P0 будет сумма значений
}
};
Немаловажный вопрос - в какой момент нужно пересчитывать значение.
Можно запустить этот сценарий по расписанию (циклически - каждые 30 сек, или на границе минуты...)
Если же нужно, чтобы при любом изменении значений m1 или m2 - в декларативную часть сценария нужно добавить startOnChange.
Можно вызывать сценарий при любом изменении значений m1, m2: startOnChange([m1,m2]);
Можно указать конкретные свойства: startOnChange([m1.P0,m2.P0])
const m1 = Device("Meter_001");
const m2 = Device("Meter_002");
const m3 = Device("Meter_003");
startOnChange([m1.P0,m2.P0]);
const script = {
start() {
m3.assign('P0', m1.P0+m2.P0); // В счетчике Meter_003.P0 будет сумма значений
}
};