Получение времени изменения свойства
Модератор: immortal
-
- Сообщения: 119
- Зарегистрирован: Вт ноя 08, 2016 4:27 pm
- Благодарил (а): 11 раз
- Поблагодарили: 10 раз
Получение времени изменения свойства
Собственно использую модуль "Устройства esp8266_wifiot" и успешно получаю данные на него:
Столкнулся вот с таким вопросом. на картинке видно что выводится дата и время изменения свойства, собственно как мне ее вывести в блоке HTML? Сами значения вывожу нормально, а вот с датой изменения - проблема. Заранее спасибо!
Столкнулся вот с таким вопросом. на картинке видно что выводится дата и время изменения свойства, собственно как мне ее вывести в блоке HTML? Сами значения вывожу нормально, а вот с датой изменения - проблема. Заранее спасибо!
-
- Сообщения: 119
- Зарегистрирован: Пн авг 24, 2015 11:24 am
- Откуда: Сочи
- Благодарил (а): 4 раза
- Поблагодарили: 14 раз
Re: Получение времени изменения свойства
1 - добавить объекту новое свойство к примеру update_time
2 - создать метод объекта к примеру last_update с таким кодом
3 - привязать необходимым свойствам запуск метода при изменении ("Запускать метод при изменении" выставляется в параметрах необходимого свойства)
тем самым, при изменении статуса свойства, будет вызван метод который обновляет поле update_time
либо вытаскивать из БД
таблица mqtt -> поле UPDATED
2 - создать метод объекта к примеру last_update с таким кодом
Код: Выделить всё
if($params['NEW_VALUE']) {
$this->setProperty("update_time", mktime());
}
тем самым, при изменении статуса свойства, будет вызван метод который обновляет поле update_time
либо вытаскивать из БД
таблица mqtt -> поле UPDATED
- Рейтинг: 1.16%
-
- Сообщения: 119
- Зарегистрирован: Вт ноя 08, 2016 4:27 pm
- Благодарил (а): 11 раз
- Поблагодарили: 10 раз
Re: Получение времени изменения свойства
Сделал, выбираю метод: http://joxi.ru/Y2L796CnyWR3m6 при попытке сохранить - он не сохраняется. В чем может быть проблема?GreatBAO писал(а):1 - добавить объекту новое свойство к примеру update_time
2 - создать метод объекта к примеру last_update с таким кодом3 - привязать необходимым свойствам запуск метода при изменении ("Запускать метод при изменении" выставляется в параметрах необходимого свойства)Код: Выделить всё
if($params['NEW_VALUE']) { $this->setProperty("update_time", mktime()); }
тем самым, при изменении статуса свойства, будет вызван метод который обновляет поле update_time
либо вытаскивать из БД
таблица mqtt -> поле UPDATED
-
- Сообщения: 119
- Зарегистрирован: Вт ноя 08, 2016 4:27 pm
- Благодарил (а): 11 раз
- Поблагодарили: 10 раз
Re: Получение времени изменения свойства
Ошибок не было, я сам затупил, код рабочий. Не учел что свойство объекта.GreatBAO писал(а):а ошибки при этом появляются в "Ошибки системы" ?
-
- Сообщения: 88
- Зарегистрирован: Чт сен 08, 2016 3:14 pm
- Благодарил (а): 17 раз
- Поблагодарили: 0
Re: Получение времени изменения свойства
А где надо сделать такую привязку? У меня в свойствах объекта нет параметра "Запускать метод при изменении".GreatBAO писал(а): 3 - привязать необходимым свойствам запуск метода при изменении ("Запускать метод при изменении" выставляется в параметрах необходимого свойства)
И подскажите, каким образом при изменении свойства получить его старое и новое (измененное) значения?
-
- Сообщения: 119
- Зарегистрирован: Пн авг 24, 2015 11:24 am
- Откуда: Сочи
- Благодарил (а): 4 раза
- Поблагодарили: 14 раз
Re: Получение времени изменения свойства
В качестве параметров указанному методу будут переданы следующие данные:max506 писал(а):А где надо сделать такую привязку? У меня в свойствах объекта нет параметра "Запускать метод при изменении".
И подскажите, каким образом при изменении свойства получить его старое и новое (измененное) значения?
$params['PROPERTY'] -- текстовое имя изменяемого свойства
$params['NEW_VALUE'] -- присваиваемое значение
$params['OLD_VALUE'] -- предыдущее значение
- Рейтинг: 1.16%
-
- Сообщения: 88
- Зарегистрирован: Чт сен 08, 2016 3:14 pm
- Благодарил (а): 17 раз
- Поблагодарили: 0
Re: Получение времени изменения свойства
Создал класс Class1. Добавил свойство value1. Создал в классе метод updateValue. В настройке свойства указал вызов метода updateValue при изменении. В результате метод updateValue вызывается с некоторой периодичностью постоянно, при этом $params['NEW_VALUE'] = $params['OLD_VALUE'].
Почему так происходит? Я ожидал, что метод будет вызываться только при изменении значения свойства, когда $params['NEW_VALUE'] != $params['OLD_VALUE']. Что я делаю не так?
Почему так происходит? Я ожидал, что метод будет вызываться только при изменении значения свойства, когда $params['NEW_VALUE'] != $params['OLD_VALUE']. Что я делаю не так?
-
- Сообщения: 119
- Зарегистрирован: Пн авг 24, 2015 11:24 am
- Откуда: Сочи
- Благодарил (а): 4 раза
- Поблагодарили: 14 раз
Re: Получение времени изменения свойства
max506 писал(а):Я ожидал, что метод будет вызываться только при изменении значения свойства, когда $params['NEW_VALUE'] != $params['OLD_VALUE']. Что я делаю не так?
-
- Сообщения: 119
- Зарегистрирован: Пн авг 24, 2015 11:24 am
- Откуда: Сочи
- Благодарил (а): 4 раза
- Поблагодарили: 14 раз
Re: Получение времени изменения свойства
метод вызывается при любом изменении значений, будь то X != X или X = X
внутри метода уже можно сделать простую проверку
внутри метода уже можно сделать простую проверку
Код: Выделить всё
if($params['NEW_VALUE'] != $params['OLD_VALUE']) {
}