• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

NodeMCU время ntp и cron - есть корректный способ указать часовой пояс?

kostushko

New member
Здравствуйте

Использую прошивку NodeMCU, генерирую на сайте - https://nodemcu-build.com/index.php (выбираю библиотеки Cron/RTC time/SNTP и проч.)
Нужно отслеживание времени и выполнение заданий по cron'у, столкнулся с тем что обычная синхронизация через sntp.sync выдает время в UTC+0, а cron хотелось бы использовать в текущем часовом поясе (в моем случае +5 часов).
Если сдвигать время на +5 часов при синхронизации:
Код:
  sntp.sync(function(sec, usec, server, info)
      sec = sec + 3600*5
      rtctime.set(sec, usec)
   end,  function() print('sync failed') end,  1)
То на мой взгляд будет страдать точность хода, т.к. в модуле RTC time заявлена подстройка под данные синхронизации, и при больших расхождениях внутреннего времени с временем сервера с каждой синхронизацией этот таймер будет подстраиваться не правильно (это особенно актуально если будет использоваться еще и режим сна, т.е. устройство не будет постоянно онлайн).

Видится такие "костыли":
  1. своя реализация cron'а с учетом часового пояса
  2. писать задания cron в UTC+0
  3. забить на уход таймера после спящего режима и почаще синхронизировать время и каждый раз сдвигать его
Подскажите может есть простой и адекватный способ на данной прошивке и модулях учесть и часовой пояс и обеспечить точное время?
 
Сверху Снизу