Господа, можно ли в методе Changed узнать предыдущее значение измененного свойства?
я так понял, метод вызывается при любом присваивании нового значения свойству, а не его изменении.
OnChange реализовать никак нельзя по-простому?
мне нужно отслеживать именно изменение. если свойство обновлено, но не изменилось - ничего не делать. как??
Changed, предыдущее значение свойства
Модератор: immortal
-
- Сообщения: 1473
- Зарегистрирован: Сб окт 12, 2013 11:03 pm
- Благодарил (а): 49 раз
- Поблагодарили: 327 раз
Re: Changed, предыдущее значение свойства
http://majordomo.smartliving.ru/Hints/LinkedMethodnightwind писал(а):Господа, можно ли в методе Changed узнать предыдущее значение измененного свойства?
я так понял, метод вызывается при любом присваивании нового значения свойству, а не его изменении.
OnChange реализовать никак нельзя по-простому?
мне нужно отслеживать именно изменение. если свойство обновлено, но не изменилось - ничего не делать. как??
http://majordomo.smartliving.ru/Hints/Onchangemethod
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
- nightwind
- Сообщения: 333
- Зарегистрирован: Вс июн 26, 2016 4:42 pm
- Откуда: Барановичи
- Благодарил (а): 28 раз
- Поблагодарили: 52 раза
- Контактная информация:
Re: Changed, предыдущее значение свойства
спасибо за наводку. сделал так
свойство online прилинковано к устройствам_онлайн. выставляется правильно.
код метода, привязанный к свойству online (Запускать метод при изменении (не обязательно):)
$old=$params['OLD_VALUE'];
$new=$params['VALUE'];
if ($old !=$new) {
if ($new=="1") {
$this->setProperty("onlineAt",time());
$this->setProperty("onlineAtTime",date("H:i",time()));
}
else
{
$this->setProperty("offlineAt",time());
$this->setProperty("offlineAtTime",date("H:i",time()));
}
}
не работает. выполняется ветка else, хотя Online присваивается единица. похоже $old=$params['OLD_VALUE'];
$new=$params['VALUE']; работает как то не так
свойство online прилинковано к устройствам_онлайн. выставляется правильно.
код метода, привязанный к свойству online (Запускать метод при изменении (не обязательно):)
$old=$params['OLD_VALUE'];
$new=$params['VALUE'];
if ($old !=$new) {
if ($new=="1") {
$this->setProperty("onlineAt",time());
$this->setProperty("onlineAtTime",date("H:i",time()));
}
else
{
$this->setProperty("offlineAt",time());
$this->setProperty("offlineAtTime",date("H:i",time()));
}
}
не работает. выполняется ветка else, хотя Online присваивается единица. похоже $old=$params['OLD_VALUE'];
$new=$params['VALUE']; работает как то не так