Показания счетчиков через WB-MWAC

Добрый день.
не могу вывести показания счетчиков в кубических метрах.
счетчик подключен к WB-MWAC (Demokit v3), показывают только импульсы (в Web ui).
создал правило:

var meterCorrection = 1779 // Корректировочное значение счетчика в литрах
var counterCorrection = 1 // Корректировочное значение WB-MCM8 в импульсах
var inpulseValue = 10 // Количество литров на один импульс

defineVirtualDevice("water_meters", { // Создаем виртуальный девайс для отображения в веб интерфейсе.
    title: "Счетчики воды",
    cells: {
        water_meter_1: {
            type: "value",
            value: 0
        },
    }
});

defineRule("water_meter_1", {
    whenChanged: "wb-mwac_25/P1 counter",
    then: function(newValue, devName, cellName) {
      if(newValue){
      dev["water_meters/water_meter_1"] = ((parseInt(newValue) - counterCorrection) * inpulseValue) + meterCorrection; // Умножаем значение счетчика на количество литров/импульс и прибавляем корректировочное значение.
      }
    }
});

не помогает.

Добрый день.

Судя по правилу, у вас осуществляется пересчет импульсов в литры. Чтобы перевести литры в кубические метры — нужно разделить полученное значение на 1000:

dev["water_meters/water_meter_1"] = (((parseInt(newValue) - counterCorrection) * inpulseValue) + meterCorrection) / 1000;

Добрый день.
по Вашему совету получилось, понял что корректировочное значение мне не нужно. теперь значение не меняется.

var inpulseValue = 10 // Количество литров на один импульс

defineVirtualDevice("water_meters", { // Создаем виртуальный девайс для отображения в веб интерфейсе.
    title: "Счетчики воды",
    cells: {
        water_meter_1: {
            type: "value",
            value: 0
        },
    }
});

defineRule("water_meter_1", {
    whenChanged: "wb-mwac_25/P1 counter",
    then: function(newValue, devName, cellName) {
      if(newValue){
      dev["water_meters/water_meter_1"] = (parseInt(newValue * inpulseValue)) /1000; // Умножаем значение счетчика на количество литров/импульс.
      }
    }
});

wb-mwac_25/P1 counter
counter - с маленькой буквы

а возможно, чтоб после цифр подписывало м3?

Вот описание доступных типов:

Тут есть описание API как можно изменить units для контрола

Думаю можно это сделать и без вызова функции, а прямо в описании устройства, но быстро найти пример не смог.

water_meter_1: {
    type: "value",
    value: 0,
    units: "m^3"
},

В документации на wb-rules действительно этого нет, добавим.

1 лайк

Спасибо!

так без правил проще :slight_smile: