Страница 1 из 1

Время в истории

Добавлено: Чт янв 09, 2020 6:36 am
yii
Даже не знаю в какой раздел лучше написать, попробую сюда...

Есть некая проблема со временем в истории...
МД на малине, в ОС установлена моя таймзона +7, в самом МД тоже установлена таймзона +7

Ситуация в которой все работает штатно... от некого датчика в некий объект, скажем через mqtt прилетели данные, вот прямо сейчас, в свойство updated записалось 1578540233, что в переводе на человеческий язык будет 01/09/2020 @ 3:23am (UTC) - вобщем то все верно, пишется время UTC, а у меня +7 событие произошло в 10:23am по моему времени... теперь заглянем в историю свойства объекта которое изменилось... в истории мы увидем 09.01.2020 10:23 все верно...

Теперь про проблему... есть некий девайс, который отдает свое состояние через get (он посылает get запрос моей малине). Скрипт обрабатывающий запрос просто пишет данные в нужное свойство нужного объекта через setGlobal... допустим в тоже самое время что указано выше - 1578540233 прилетели данные от девайса... в свойстве updated мы увидем тоже время... а вот в истории время будет 09.01.2020 03:23 - т.е. как будто по UTC... соответственно вся история и графики от девайса сдвинуты на 7 часов... Специально updated не меняю, все происходит средствами системы в момент изменения value, класс стандартный SSensors... Куда копать?

Re: Время в истории

Добавлено: Чт янв 09, 2020 10:42 pm
xor
yii писал(а):
Чт янв 09, 2020 6:36 am
Даже не знаю в какой раздел лучше написать, попробую сюда...

Есть некая проблема со временем в истории...
МД на малине, в ОС установлена моя таймзона +7, в самом МД тоже установлена таймзона +7

Ситуация в которой все работает штатно... от некого датчика в некий объект, скажем через mqtt прилетели данные, вот прямо сейчас, в свойство updated записалось 1578540233, что в переводе на человеческий язык будет 01/09/2020 @ 3:23am (UTC) - вобщем то все верно, пишется время UTC, а у меня +7 событие произошло в 10:23am по моему времени... теперь заглянем в историю свойства объекта которое изменилось... в истории мы увидем 09.01.2020 10:23 все верно...

Теперь про проблему... есть некий девайс, который отдает свое состояние через get (он посылает get запрос моей малине). Скрипт обрабатывающий запрос просто пишет данные в нужное свойство нужного объекта через setGlobal... допустим в тоже самое время что указано выше - 1578540233 прилетели данные от девайса... в свойстве updated мы увидем тоже время... а вот в истории время будет 09.01.2020 03:23 - т.е. как будто по UTC... соответственно вся история и графики от девайса сдвинуты на 7 часов... Специально updated не меняю, все происходит средствами системы в момент изменения value, класс стандартный SSensors... Куда копать?
что-то у вас с настройками времени(
у меня и в updated, и в историю пишутся одинаковые данные времени, причём уже с учётом +3 - и юникс тайм в updated, и строкой в added истории

Re: Время в истории

Добавлено: Пт янв 10, 2020 4:27 am
yii
xor писал(а):
Чт янв 09, 2020 10:42 pm

что-то у вас с настройками времени(
у меня и в updated, и в историю пишутся одинаковые данные времени, причём уже с учётом +3 - и юникс тайм в updated, и строкой в added истории
И в системе и в MD стоит +7, mysql и и глобальную и сессионную зону возвращает system...
Проблема как мне кажется в mysql, и вот почему - кинул данные из вебхука в промежуточный объект, и сделал скрипт который данные из этого объекта перекладывает в нужный... если скрипт запускать на апдейт промежуточного объекта, то источник данных вебхук и кривое время в истории... если же запустить этот скрипт руками по приходу данных (т.е. разорвать его отношения с вебхуком), то в целевом объекте источник данных уже не вебхук и верное время в истории...

Вобщем то этот девайс у меня временный пока едут железки для зигби, просто старый неожиданно помер и пришлось по быстрому слепить из того что было. Вчера чуть поправил скрипт вебхука, теперь он не сразу в объект пишет, а публикует данные в mqtt - так что проблему пока решил, но почему так происходит не ясно...