From 94a6eae29895453133c624fb25ed3fbccec7379a Mon Sep 17 00:00:00 2001 From: kugelkopf123 <45996965+kugelkopf123@users.noreply.github.com> Date: Mon, 20 Apr 2020 14:04:33 +0200 Subject: [PATCH 1/2] TZ update Added the possibility to set the timezone without using NTP. This is helpful to have the timezone advantages when using an external RTC. --- cores/esp8266/Arduino.h | 2 ++ cores/esp8266/time.cpp | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/cores/esp8266/Arduino.h b/cores/esp8266/Arduino.h index a4e00ec736..edb6bdd5c4 100644 --- a/cores/esp8266/Arduino.h +++ b/cores/esp8266/Arduino.h @@ -276,6 +276,8 @@ long secureRandom(long); long secureRandom(long, long); long map(long, long, long, long, long); +void setTZ(const char* tz); + void configTime(int timezone, int daylightOffset_sec, const char* server1, const char* server2 = nullptr, const char* server3 = nullptr); diff --git a/cores/esp8266/time.cpp b/cores/esp8266/time.cpp index 45481d91b1..912325526f 100644 --- a/cores/esp8266/time.cpp +++ b/cores/esp8266/time.cpp @@ -185,7 +185,15 @@ void configTime(int timezone_sec, int daylightOffset_sec, const char* server1, c /*** end of posix replacement ***/ } - +void setTZ(const char* tz){ + + char tzram[strlen_P(tz) + 1]; + memcpy_P(tzram, tz, sizeof(tzram)); + setenv("TZ", tzram, 1/*overwrite*/); + tzset(); + + +} void configTime(const char* tz, const char* server1, const char* server2, const char* server3) { sntp_stop(); @@ -193,10 +201,12 @@ void configTime(const char* tz, const char* server1, const char* server2, const setServer(0, server1); setServer(1, server2); setServer(2, server3); + /* char tzram[strlen_P(tz) + 1]; memcpy_P(tzram, tz, sizeof(tzram)); - setenv("TZ", tzram, 1/*overwrite*/); - tzset(); - + setenv("TZ", tzram, 1/*overwrite*/ //);FIXME + //tzset(); + setTZ(tz); sntp_init(); } + From 005f89e272a753af9e796726e652f0d1ca9cd594 Mon Sep 17 00:00:00 2001 From: kugelkopf123 <45996965+kugelkopf123@users.noreply.github.com> Date: Mon, 20 Apr 2020 14:06:57 +0200 Subject: [PATCH 2/2] Update time.cpp --- cores/esp8266/time.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/cores/esp8266/time.cpp b/cores/esp8266/time.cpp index 912325526f..d6abbfc88d 100644 --- a/cores/esp8266/time.cpp +++ b/cores/esp8266/time.cpp @@ -185,15 +185,15 @@ void configTime(int timezone_sec, int daylightOffset_sec, const char* server1, c /*** end of posix replacement ***/ } + void setTZ(const char* tz){ char tzram[strlen_P(tz) + 1]; memcpy_P(tzram, tz, sizeof(tzram)); setenv("TZ", tzram, 1/*overwrite*/); tzset(); - - } + void configTime(const char* tz, const char* server1, const char* server2, const char* server3) { sntp_stop(); @@ -201,12 +201,8 @@ void configTime(const char* tz, const char* server1, const char* server2, const setServer(0, server1); setServer(1, server2); setServer(2, server3); - /* - char tzram[strlen_P(tz) + 1]; - memcpy_P(tzram, tz, sizeof(tzram)); - setenv("TZ", tzram, 1/*overwrite*/ //);FIXME - //tzset(); setTZ(tz); + sntp_init(); }