Get gmtOffset from weather data, for use in all NTP requests

Signed-off-by: Olivier Mehani <shtrom@ssji.net>
pull/188/head
Olivier Mehani 2022-10-15 23:09:06 +11:00
parent 99158e19d4
commit 2bd89ef250
No known key found for this signature in database
GPG Key ID: A08FAA9B6A81D925
8 changed files with 20 additions and 16 deletions

View File

@ -10,7 +10,7 @@
#define WEATHER_UPDATE_INTERVAL 30 //must be greater than 5, measured in minutes #define WEATHER_UPDATE_INTERVAL 30 //must be greater than 5, measured in minutes
//NTP Settings //NTP Settings
#define NTP_SERVER "pool.ntp.org" #define NTP_SERVER "pool.ntp.org"
#define GMT_OFFSET_SEC 3600 * -5 //New York is UTC -5 EST, -4 EDT #define GMT_OFFSET_SEC 3600 * -5 //New York is UTC -5 EST, -4 EDT, will be overwritten by weather data
watchySettings settings{ watchySettings settings{
CITY_ID, CITY_ID,
@ -23,4 +23,4 @@ watchySettings settings{
GMT_OFFSET_SEC GMT_OFFSET_SEC
}; };
#endif #endif

View File

@ -10,7 +10,7 @@
#define WEATHER_UPDATE_INTERVAL 30 //must be greater than 5, measured in minutes #define WEATHER_UPDATE_INTERVAL 30 //must be greater than 5, measured in minutes
//NTP Settings //NTP Settings
#define NTP_SERVER "pool.ntp.org" #define NTP_SERVER "pool.ntp.org"
#define GMT_OFFSET_SEC 3600 * -5 //New York is UTC -5 EST, -4 EDT #define GMT_OFFSET_SEC 3600 * -5 //New York is UTC -5 EST, -4 EDT, will be overwritten by weather data
watchySettings settings{ watchySettings settings{
CITY_ID, CITY_ID,
@ -23,4 +23,4 @@ watchySettings settings{
GMT_OFFSET_SEC GMT_OFFSET_SEC
}; };
#endif #endif

View File

@ -10,7 +10,7 @@
#define WEATHER_UPDATE_INTERVAL 30 //must be greater than 5, measured in minutes #define WEATHER_UPDATE_INTERVAL 30 //must be greater than 5, measured in minutes
//NTP Settings //NTP Settings
#define NTP_SERVER "pool.ntp.org" #define NTP_SERVER "pool.ntp.org"
#define GMT_OFFSET_SEC 3600 * -5 //New York is UTC -5 EST, -4 EDT #define GMT_OFFSET_SEC 3600 * -5 //New York is UTC -5 EST, -4 EDT, will be overwritten by weather data
watchySettings settings{ watchySettings settings{
CITY_ID, CITY_ID,
@ -23,4 +23,4 @@ watchySettings settings{
GMT_OFFSET_SEC GMT_OFFSET_SEC
}; };
#endif #endif

View File

@ -10,7 +10,7 @@
#define WEATHER_UPDATE_INTERVAL 30 //must be greater than 5, measured in minutes #define WEATHER_UPDATE_INTERVAL 30 //must be greater than 5, measured in minutes
//NTP Settings //NTP Settings
#define NTP_SERVER "pool.ntp.org" #define NTP_SERVER "pool.ntp.org"
#define GMT_OFFSET_SEC 3600 * -5 //New York is UTC -5 EST, -4 EDT #define GMT_OFFSET_SEC 3600 * -5 //New York is UTC -5 EST, -4 EDT, will be overwritten by weather data
watchySettings settings{ watchySettings settings{
CITY_ID, CITY_ID,
@ -23,4 +23,4 @@ watchySettings settings{
GMT_OFFSET_SEC GMT_OFFSET_SEC
}; };
#endif #endif

View File

@ -10,7 +10,7 @@
#define WEATHER_UPDATE_INTERVAL 30 //must be greater than 5, measured in minutes #define WEATHER_UPDATE_INTERVAL 30 //must be greater than 5, measured in minutes
//NTP Settings //NTP Settings
#define NTP_SERVER "pool.ntp.org" #define NTP_SERVER "pool.ntp.org"
#define GMT_OFFSET_SEC 3600 * -5 //New York is UTC -5 EST, -4 EDT #define GMT_OFFSET_SEC 3600 * -5 //New York is UTC -5 EST, -4 EDT, will be overwritten by weather data
watchySettings settings{ watchySettings settings{
CITY_ID, CITY_ID,
@ -23,4 +23,4 @@ watchySettings settings{
GMT_OFFSET_SEC GMT_OFFSET_SEC
}; };
#endif #endif

View File

@ -10,7 +10,7 @@
#define WEATHER_UPDATE_INTERVAL 30 //must be greater than 5, measured in minutes #define WEATHER_UPDATE_INTERVAL 30 //must be greater than 5, measured in minutes
//NTP Settings //NTP Settings
#define NTP_SERVER "pool.ntp.org" #define NTP_SERVER "pool.ntp.org"
#define GMT_OFFSET_SEC 3600 * -5 //New York is UTC -5 EST, -4 EDT #define GMT_OFFSET_SEC 3600 * -5 //New York is UTC -5 EST, -4 EDT, will be overwritten by weather data
watchySettings settings{ watchySettings settings{
CITY_ID, CITY_ID,
@ -23,4 +23,4 @@ watchySettings settings{
GMT_OFFSET_SEC GMT_OFFSET_SEC
}; };
#endif #endif

View File

@ -10,7 +10,7 @@
#define WEATHER_UPDATE_INTERVAL 30 //must be greater than 5, measured in minutes #define WEATHER_UPDATE_INTERVAL 30 //must be greater than 5, measured in minutes
//NTP Settings //NTP Settings
#define NTP_SERVER "pool.ntp.org" #define NTP_SERVER "pool.ntp.org"
#define GMT_OFFSET_SEC 3600 * -5 //New York is UTC -5 EST, -4 EDT #define GMT_OFFSET_SEC 3600 * -5 //New York is UTC -5 EST, -4 EDT, will be overwritten by weather data
watchySettings settings{ watchySettings settings{
CITY_ID, CITY_ID,
@ -23,4 +23,4 @@ watchySettings settings{
GMT_OFFSET_SEC GMT_OFFSET_SEC
}; };
#endif #endif

View File

@ -12,6 +12,7 @@ RTC_DATA_ATTR bool BLE_CONFIGURED;
RTC_DATA_ATTR weatherData currentWeather; RTC_DATA_ATTR weatherData currentWeather;
RTC_DATA_ATTR int weatherIntervalCounter = -1; RTC_DATA_ATTR int weatherIntervalCounter = -1;
RTC_DATA_ATTR bool displayFullInit = true; RTC_DATA_ATTR bool displayFullInit = true;
RTC_DATA_ATTR long gmtOffset = 0;
void Watchy::init(String datetime) { void Watchy::init(String datetime) {
esp_sleep_wakeup_cause_t wakeup_reason; esp_sleep_wakeup_cause_t wakeup_reason;
@ -38,6 +39,7 @@ void Watchy::init(String datetime) {
default: // reset default: // reset
RTC.config(datetime); RTC.config(datetime);
_bmaConfig(); _bmaConfig();
gmtOffset = settings.gmtOffset;
RTC.read(currentTime); RTC.read(currentTime);
showWatchFace(false); // full update on reset showWatchFace(false); // full update on reset
break; break;
@ -619,7 +621,7 @@ weatherData Watchy::getWeatherData(String cityID, String units, String lang,
currentWeather.weatherDescription = currentWeather.weatherDescription =
responseObject["weather"][0]["main"]; responseObject["weather"][0]["main"];
// sync NTP during weather API call and use timezone of city // sync NTP during weather API call and use timezone of city
syncNTP(long(responseObject["timezone"])); gmtOffset = int(responseObject["timezone"]);
} else { } else {
// http error // http error
} }
@ -940,6 +942,8 @@ void Watchy::showSyncNTP() {
display.setTextColor(GxEPD_WHITE); display.setTextColor(GxEPD_WHITE);
display.setCursor(0, 30); display.setCursor(0, 30);
display.println("Syncing NTP... "); display.println("Syncing NTP... ");
display.print("GMT offset: ");
display.println(gmtOffset);
display.display(false); // full refresh display.display(false); // full refresh
if (connectWiFi()) { if (connectWiFi()) {
if (syncNTP()) { if (syncNTP()) {
@ -977,7 +981,7 @@ void Watchy::showSyncNTP() {
bool Watchy::syncNTP() { // NTP sync - call after connecting to WiFi and bool Watchy::syncNTP() { // NTP sync - call after connecting to WiFi and
// remember to turn it back off // remember to turn it back off
return syncNTP(settings.gmtOffset, return syncNTP(gmtOffset,
settings.ntpServer.c_str()); settings.ntpServer.c_str());
} }