Rule Examples: различия между версиями
Fizikdaos (обсуждение | вклад) |
Fizikdaos (обсуждение | вклад) |
||
Строка 311: | Строка 311: | ||
<!--T:69--> | <!--T:69--> | ||
</syntaxhighlight> | |||
== Импульсные счетчики == | |||
Импульсный счетчик подключен к WB-MCM8. Выдает 1 импульс на 10 литров воды. При подключении на счетчике были показания 123.120 м³, что равно 123120 литрам воды. У WB-MCM8 при подключении было насчитано 7 импульсов. | |||
<syntaxhighlight lang="ecmascript"> | |||
var meterCorrection = 123120 // Корректировочное значение счетчика в литрах | |||
var counterCorrection = 7 // Корректировочное значение WB-MCM8 в импульсах | |||
var inpulseValue = 10 // Количество литров на один импульс | |||
defineVirtualDevice("water_meters", { // Создаем виртуальный девайс для отображения в веб интерфейсе. | |||
title: "Счетчики воды", | |||
cells: { | |||
water_meter_1: { | |||
type: "value", | |||
value: 0 | |||
}, | |||
} | |||
}); | |||
defineRule("water_meter_1", { | |||
whenChanged: "wb-mcm8_29/Input 1 counter", | |||
then: function(newValue, devName, cellName) { | |||
if(newValue){ | |||
dev["water_meters"]["water_meter_1"] = ((parseInt(newValue) - counterCorrection) * inpulseValue) + meterCorrection; // Умножаем значение счетчика на количество литров/импульс и прибавляем корректировочное значение. | |||
} | |||
} | |||
}); | |||
</syntaxhighlight> | </syntaxhighlight> | ||