Правило для импульсного счётчика воды

Если в переменную b вы хотите присвоить текущее значение контрола, то строка должна выглядеть так:

var b = dev[deviceName+“/impuls_2”];

В противном случае вы в переменную b присваиваете текстwater_meters/impuls_2” и далее пытаетесь к текстовому значению прибавить значение переменной а (т.е. 1 )

Если что-то не работает так ка вы этого хотите, то выводите в log() промежуточные значения или результаты операций - так вам будет понятно что и где работает не так
В вашем случае если под строчку

var b = deviceName+“/impuls_2”

Добавить что-то такое

log("значение переменное а = ", a, "  Значение переменой b = ", b);

То вы бы заметили ошибку.