Получение времени изменения свойства

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Akorolev
Сообщения: 119
Зарегистрирован: Вт ноя 08, 2016 4:27 pm

Получение времени изменения свойства

Сообщение Akorolev »

Собственно использую модуль "Устройства esp8266_wifiot" и успешно получаю данные на него:
Изображение
Столкнулся вот с таким вопросом. на картинке видно что выводится дата и время изменения свойства, собственно как мне ее вывести в блоке HTML? Сами значения вывожу нормально, а вот с датой изменения - проблема. Заранее спасибо!
GreatBAO
Сообщения: 119
Зарегистрирован: Пн авг 24, 2015 11:24 am
Откуда: Сочи

Re: Получение времени изменения свойства

Сообщение GreatBAO »

1 - добавить объекту новое свойство к примеру update_time
2 - создать метод объекта к примеру last_update с таким кодом

Код: Выделить всё

if($params['NEW_VALUE']) {
     $this->setProperty("update_time", mktime());
}
3 - привязать необходимым свойствам запуск метода при изменении ("Запускать метод при изменении" выставляется в параметрах необходимого свойства)
тем самым, при изменении статуса свойства, будет вызван метод который обновляет поле update_time

либо вытаскивать из БД
таблица mqtt -> поле UPDATED
Akorolev
Сообщения: 119
Зарегистрирован: Вт ноя 08, 2016 4:27 pm

Re: Получение времени изменения свойства

Сообщение Akorolev »

GreatBAO писал(а):1 - добавить объекту новое свойство к примеру update_time
2 - создать метод объекта к примеру last_update с таким кодом

Код: Выделить всё

if($params['NEW_VALUE']) {
     $this->setProperty("update_time", mktime());
} 
3 - привязать необходимым свойствам запуск метода при изменении ("Запускать метод при изменении" выставляется в параметрах необходимого свойства)
тем самым, при изменении статуса свойства, будет вызван метод который обновляет поле update_time

либо вытаскивать из БД
таблица mqtt -> поле UPDATED
Сделал, выбираю метод: http://joxi.ru/Y2L796CnyWR3m6 при попытке сохранить - он не сохраняется. В чем может быть проблема?
GreatBAO
Сообщения: 119
Зарегистрирован: Пн авг 24, 2015 11:24 am
Откуда: Сочи

Re: Получение времени изменения свойства

Сообщение GreatBAO »

а ошибки при этом появляются в "Ошибки системы" ?
Akorolev
Сообщения: 119
Зарегистрирован: Вт ноя 08, 2016 4:27 pm

Re: Получение времени изменения свойства

Сообщение Akorolev »

GreatBAO писал(а):а ошибки при этом появляются в "Ошибки системы" ?
Ошибок не было, я сам затупил, код рабочий. Не учел что свойство объекта.
max506
Сообщения: 88
Зарегистрирован: Чт сен 08, 2016 3:14 pm

Re: Получение времени изменения свойства

Сообщение max506 »

GreatBAO писал(а): 3 - привязать необходимым свойствам запуск метода при изменении ("Запускать метод при изменении" выставляется в параметрах необходимого свойства)
А где надо сделать такую привязку? У меня в свойствах объекта нет параметра "Запускать метод при изменении".
И подскажите, каким образом при изменении свойства получить его старое и новое (измененное) значения?
GreatBAO
Сообщения: 119
Зарегистрирован: Пн авг 24, 2015 11:24 am
Откуда: Сочи

Re: Получение времени изменения свойства

Сообщение GreatBAO »

max506 писал(а):А где надо сделать такую привязку? У меня в свойствах объекта нет параметра "Запускать метод при изменении".
И подскажите, каким образом при изменении свойства получить его старое и новое (измененное) значения?
e2159-clip-24kb.png
e2159-clip-24kb.png (23.81 КБ) 8963 просмотра
В качестве параметров указанному методу будут переданы следующие данные:
$params['PROPERTY'] -- текстовое имя изменяемого свойства
$params['NEW_VALUE'] -- присваиваемое значение
$params['OLD_VALUE'] -- предыдущее значение
max506
Сообщения: 88
Зарегистрирован: Чт сен 08, 2016 3:14 pm

Re: Получение времени изменения свойства

Сообщение max506 »

Создал класс Class1. Добавил свойство value1. Создал в классе метод updateValue. В настройке свойства указал вызов метода updateValue при изменении. В результате метод updateValue вызывается с некоторой периодичностью постоянно, при этом $params['NEW_VALUE'] = $params['OLD_VALUE'].
Почему так происходит? Я ожидал, что метод будет вызываться только при изменении значения свойства, когда $params['NEW_VALUE'] != $params['OLD_VALUE']. Что я делаю не так?
GreatBAO
Сообщения: 119
Зарегистрирован: Пн авг 24, 2015 11:24 am
Откуда: Сочи

Re: Получение времени изменения свойства

Сообщение GreatBAO »

max506 писал(а):Я ожидал, что метод будет вызываться только при изменении значения свойства, когда $params['NEW_VALUE'] != $params['OLD_VALUE']. Что я делаю не так?
GreatBAO
Сообщения: 119
Зарегистрирован: Пн авг 24, 2015 11:24 am
Откуда: Сочи

Re: Получение времени изменения свойства

Сообщение GreatBAO »

метод вызывается при любом изменении значений, будь то X != X или X = X

внутри метода уже можно сделать простую проверку

Код: Выделить всё

if($params['NEW_VALUE'] != $params['OLD_VALUE']) {
  
} 
Ответить