К WB-MWAC подключен импульсный счетчик воды. Для сбора показаний был использован скрипт:
var meterCorrection = 15725 // Корректировочное значение счетчика в литрах
var counterCorrection = 414 // Корректировочное значение WB-MCM8 в импульсах
var inpulseValue = 10 // Количество литров на один импульс
defineVirtualDevice("water_meters", { // Создаем виртуальный девайс для отображения в веб интерфейсе.
title: "Счетчики воды",
cells: {
water_meter_1: {
type: "value",
value: 0
},
}
});
defineRule("water_meter_1", {
whenChanged: "wb-mwac_38/P1 Counter", // счетчик импельсов тут - /devices/wb-mwac_38/controls/P1 Counter
then: function(newValue, devName, cellName) {
if(newValue){
dev["water_meters"]["water_meter_1"] = ((parseInt(newValue) - counterCorrection) * inpulseValue) + meterCorrection; // Умножаем значение счетчика на количество литров/импульс и прибавляем корректировочное значение.
}
}
});
Проблема в том, что при ребуте WB (кстати, еще отдельный вопрос, почему он перезагрузился) показания “счетчика” скаканули. Как избежать такого “скачка”?
Batch No
6.7.2D 448
Current uptime
0d 10h 33m
DTS Version
Firmware version
202011300122
HW Revision
6.7.2
Manufacturing Date
Пт дек 4 11:29:01 MSK 2020
Reboot
Release name
wb-2108
Release suite
stable
Short SN
AK73ARH4
Temperature Grade
industrial