rtctime.cpp: bugfix time sync at device startup

This commit is contained in:
Klaus K Wilting 2019-01-26 13:44:16 +01:00
parent c05edbc2f3
commit edf5310d81

View File

@ -97,14 +97,16 @@ time_t get_rtctime(void) {
} // get_rtctime()
void sync_rtctime(void) {
if (timeStatus() != timeSet) {
ESP_LOGE(TAG, "Unable to sync with the RTC");
} else {
time_t t = now();
setTime(t);
ESP_LOGI(TAG, "RTC has set system time to %02d/%02d/%d %02d:%02d:%02d",
month(t), day(t), year(t), hour(t), minute(t), second(t));
if (timeStatus() != timeSet) { // do we need time sync?
time_t t = get_rtctime();
if (t) { // do we have valid time by RTC?
setTime(t);
ESP_LOGI(TAG, "RTC has set system time to %02d/%02d/%d %02d:%02d:%02d",
month(t), day(t), year(t), hour(t), minute(t), second(t));
} else
ESP_LOGE(TAG, "RTC has no confident time, not synced");
}
#ifdef TIME_SYNC_INTERVAL_RTC
setSyncProvider(&get_rtctime);
setSyncInterval(TIME_SYNC_INTERVAL_RTC);