return { on = { devices = { 'Licznik wody', -- nazwa licznika }, }, data = { woda = { initial = {}, }, }, execute = function(dz, item) local factor = 1 -- ustaw wartosc zgodna z twoim licznikiem 1 to 1 do 1 local przeplyw = dz.devices('Przepływ woda') -- nazwa wirtualnego licznika litry / min local przeplywTotal = item.counterToday * factor -- wodomierz moze byc typu licznikowego lub niestandardowego czujnika sValue działa w obu przypadkach if dz.data.woda.total ~= nil then -- pierwszy odczyt nie aktualizuje przepływomierza przeplyw.cancelQueuedCommands() local historia = dz.data.woda.lastTime - dz.time.dDate local aktualprzeplyw = ( przeplywTotal - dz.data.woda.total ) * 60 / math.max(historia,60) -- litry / min przeplyw.updateWaterflow(aktualprzeplyw) przeplyw.updateWaterflow(0).afterMin(10) -- brak nowych danych resetuje licznik po czasie afterMin end dz.data.woda.total = przeplywTotal dz.data.woda.lastTime = dz.time.dDate end }