Fix: If no sunset/sunrise calculation is possible a wrong value is shown

This is catched now and a proper message is shown in the web UI. Also the mode is set to day.
This commit is contained in:
Thomas Basler
2023-06-01 18:39:50 +02:00
parent aa4868cd9c
commit 5a37948ca9
8 changed files with 44 additions and 9 deletions

View File

@@ -52,14 +52,21 @@ void WebApiNtpClass::onNtpStatus(AsyncWebServerRequest* request)
strftime(timeStringBuff, sizeof(timeStringBuff), "%A, %B %d %Y %H:%M:%S", &timeinfo);
root["ntp_localtime"] = timeStringBuff;
SunPosition.sunriseTime(&timeinfo);
strftime(timeStringBuff, sizeof(timeStringBuff), "%A, %B %d %Y %H:%M:%S", &timeinfo);
if (SunPosition.sunriseTime(&timeinfo)) {
strftime(timeStringBuff, sizeof(timeStringBuff), "%A, %B %d %Y %H:%M:%S", &timeinfo);
} else {
strcpy(timeStringBuff, "--");
}
root["sun_risetime"] = timeStringBuff;
SunPosition.sunsetTime(&timeinfo);
strftime(timeStringBuff, sizeof(timeStringBuff), "%A, %B %d %Y %H:%M:%S", &timeinfo);
if (SunPosition.sunsetTime(&timeinfo)) {
strftime(timeStringBuff, sizeof(timeStringBuff), "%A, %B %d %Y %H:%M:%S", &timeinfo);
} else {
strcpy(timeStringBuff, "--");
}
root["sun_settime"] = timeStringBuff;
root["sun_isSunsetAvailable"] = SunPosition.isSunsetAvailable();
root["sun_isDayPeriod"] = SunPosition.isDayPeriod();
response->setLength();