Всем добрый день! Недавно создавал тему - Помощь в подборе вторичного трансформатора тока
Пришло время взяться за написание правил для правильного расчета токов, мощностей и энергий. Написал правило, в котором создаю новое виртуальное устройство с указанием всех электрических параметров со счетчика WB-MAP и там же в модуле перемножаю на нужный коэффициент. В итоге все работает замечательно, но если создать таких виртуальных устройств примерно 10 штук, то очень грузит процессор! А если создать больше 10, то сервис wb-rules
вообще зависает и сыпет ошибки:
ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0xedd380 <nil>} 62100})
Коротко по модулю - просто тупо на каждый передаваемый контрол создается отдельное правило с whenChange
. Сам модуль прикладываю в zip-архиве.
Пример использования в правилах:
var electricalChannel = require('moduleConverterMAP'); // Подключаем модуль
var QF2table = {
coefficient: 1,
Urms: 'wb-map3e_165/Urms L2',
Upeak: 'wb-map3e_165/Upeak L2',
Irms: 'wb-map3e_165/Irms L2',
Ipeak: 'wb-map3e_165/Ipeak L2',
P: 'wb-map3e_165/P L2',
Q: 'wb-map3e_165/Q L2',
S: 'wb-map3e_165/S L2',
PF: 'wb-map3e_165/PF L2',
APenergy: 'wb-map3e_165/AP energy L2',
ANenergy: 'wb-map3e_165/AN energy L2',
RPenergy: 'wb-map3e_165/RP energy L2',
RNenergy: 'wb-map3e_165/RN energy L2',
Frequency: 'wb-map3e_165/Frequency'
};
electricalChannel.createElectricalChannel('Рабочий стол' , 'energyTable' , QF2table );
Вот у меня и вопрос - что делать и как быть? На объекте пока будет измеряться 6 трех-фазных нагрузок, что в моем случае уже повесит контроллер. На ум приходит только создание шаблонов для каждого счетчика, где прописать уже правильный коэффициент.
moduleConverterMAP.zip (3,3 КБ)