Fixed NTP

This commit is contained in:
Gunnar Skjold
2023-04-24 15:26:31 +02:00
parent 39e86fa180
commit ed9cf4b87d
2 changed files with 19 additions and 13 deletions

View File

@@ -32,7 +32,7 @@ lib_ignore = ${common.lib_ignore}
extra_scripts = ${common.extra_scripts} extra_scripts = ${common.extra_scripts}
[env:esp32] [env:esp32]
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.02.00/platform-espressif32.zip platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.04.02/platform-espressif32.zip
framework = arduino framework = arduino
board = esp32dev board = esp32dev
board_build.f_cpu = 160000000L board_build.f_cpu = 160000000L
@@ -47,7 +47,7 @@ extra_scripts = ${common.extra_scripts}
# https://github.com/Jason2866/esp32-arduino-lib-builder # https://github.com/Jason2866/esp32-arduino-lib-builder
[env:esp32s2] [env:esp32s2]
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.02.00/platform-espressif32.zip platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.04.02/platform-espressif32.zip
framework = arduino framework = arduino
board = esp32-s2-saola-1 board = esp32-s2-saola-1
board_build.mcu = esp32s2 board_build.mcu = esp32s2
@@ -63,7 +63,7 @@ lib_ignore = ${common.lib_ignore}
extra_scripts = ${common.extra_scripts} extra_scripts = ${common.extra_scripts}
[env:esp32solo] [env:esp32solo]
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.02.00/platform-espressif32.zip platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.04.02/platform-espressif32.zip
framework = arduino framework = arduino
board = esp32-solo1 board = esp32-solo1
board_build.f_cpu = 160000000L board_build.f_cpu = 160000000L
@@ -75,7 +75,7 @@ lib_ignore = ${common.lib_ignore}
extra_scripts = ${common.extra_scripts} extra_scripts = ${common.extra_scripts}
[env:esp32c3] [env:esp32c3]
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.02.00/platform-espressif32.zip platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.04.02/platform-espressif32.zip
framework = arduino framework = arduino
board = esp32-c3-devkitm-1 board = esp32-c3-devkitm-1
board_build.mcu = esp32c3 board_build.mcu = esp32c3

View File

@@ -341,9 +341,6 @@ void setup() {
NtpConfig ntp; NtpConfig ntp;
if(config.getNtpConfig(ntp)) { if(config.getNtpConfig(ntp)) {
tz = resolveTimezone(ntp.timezone); tz = resolveTimezone(ntp.timezone);
configTime(tz->toLocal(0), tz->toLocal(JULY1970)-JULY1970, ntp.enable ? strlen(ntp.server) > 0 ? ntp.server : (char*) F("pool.ntp.org") : (char*) F("")); // Add NTP server by default if none is configured
sntp_servermode_dhcp(ntp.enable && ntp.dhcp ? 1 : 0);
ntpEnabled = ntp.enable;
ws.setTimezone(tz); ws.setTimezone(tz);
ds.setTimezone(tz); ds.setTimezone(tz);
ea.setTimezone(tz); ea.setTimezone(tz);
@@ -560,12 +557,21 @@ void handleEnergyAccountingChanged() {
config.ackEnergyAccountingChange(); config.ackEnergyAccountingChange();
} }
char ntpServerName[64] = "";
void handleNtpChange() { void handleNtpChange() {
NtpConfig ntp; NtpConfig ntp;
if(config.getNtpConfig(ntp)) { if(config.getNtpConfig(ntp)) {
tz = resolveTimezone(ntp.timezone); tz = resolveTimezone(ntp.timezone);
configTime(tz->toLocal(0), tz->toLocal(JULY1970)-JULY1970, ntp.enable ? strlen(ntp.server) > 0 ? ntp.server : (char*) F("pool.ntp.org") : (char*) F("")); // Add NTP server by default if none is configured if(ntp.enable && strlen(ntp.server) > 0) {
sntp_servermode_dhcp(ntp.enable && ntp.dhcp ? 1 : 0); strcpy(ntpServerName, ntp.server);
} else if(ntp.enable) {
strcpy(ntpServerName, "pool.ntp.org");
} else {
memset(ntpServerName, 0, 64);
}
configTime(tz->toLocal(0), tz->toLocal(JULY1970)-JULY1970, ntpServerName, "", "");
sntp_servermode_dhcp(ntp.enable && ntp.dhcp ? 1 : 0); // Not implemented on ESP32?
ntpEnabled = ntp.enable; ntpEnabled = ntp.enable;
ws.setTimezone(tz); ws.setTimezone(tz);
@@ -704,8 +710,8 @@ void rxerr(int err) {
if(err == 0) return; if(err == 0) return;
switch(err) { switch(err) {
case 1: case 1:
debugE_P(PSTR("Serial break error")); debugD_P(PSTR("Serial break"));
break; return;
case 2: case 2:
debugE_P(PSTR("Serial buffer overflow")); debugE_P(PSTR("Serial buffer overflow"));
rxBufferErrors++; rxBufferErrors++;
@@ -720,10 +726,10 @@ void rxerr(int err) {
debugE_P(PSTR("Serial FIFO overflow")); debugE_P(PSTR("Serial FIFO overflow"));
break; break;
case 4: case 4:
debugE_P(PSTR("Serial frame error")); debugW_P(PSTR("Serial frame error"));
break; break;
case 5: case 5:
debugE_P(PSTR("Serial parity error")); debugW_P(PSTR("Serial parity error"));
break; break;
} }
meterState.setLastError(90+err); meterState.setLastError(90+err);