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

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Ответить
Аватара пользователя
yii
Сообщения: 245
Зарегистрирован: Пн апр 17, 2017 1:39 pm
Благодарил (а): 30 раз
Поблагодарили: 30 раз

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

Сообщение 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... Куда копать?
Аватара пользователя
xor
Сообщения: 1666
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 180 раз
Поблагодарили: 489 раз

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

Сообщение xor » Чт янв 09, 2020 10:42 pm

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 истории
Аватара пользователя
yii
Сообщения: 245
Зарегистрирован: Пн апр 17, 2017 1:39 pm
Благодарил (а): 30 раз
Поблагодарили: 30 раз

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

Сообщение yii » Пт янв 10, 2020 4:27 am

xor писал(а):
Чт янв 09, 2020 10:42 pm

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

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