xor писал(а):Если у Вас statusupdated вызывается при изменении свойства, удобно пользоваться $params['OLD_VALUE'] и $params['NEW_VALUE'], соотв, было и стало. Не надо плодить доп. переменных, просто отслеживать нужный переход, например, из 0 в 1 :
if( $params['OLD_VALUE'] ==0&&$params['NEW_VALUE']==1){$value = $value+1;}
Код: Выделить всё
$Stat = $params['NEW_VALUE'];
$StatOld = $params['OLD_VALUE'];
$Delta = $this->getProperty('delta');
if (($Stat!=$StatOld) && ($Stat==1))
{
$val = $this->getProperty('value');
$this->setProperty('value', ($val+$Delta));
}
Параметр delta - значение, на которое при тике меняется value: это не всегла единица, т.к. у водосчетчика считаются кубометры как дробная, а тик - по докам раз в 10 литров.
Upd: Полазил по исходникам. Counter - то-ли заготовка, то-ли считается, что в Value данные приходят с устройства в готовом виде... Но факт - никаких считающих функций внутри нет!
Вообще, хочется, конечно, от Сергея услышать ааторитетное мнение "что для чего и за что какой параметр отвечает для простых устройств?!"