dokončena práce s časem

main
Michal 2024-04-13 09:26:44 +02:00
parent 996b2253fb
commit 5144d25e85
4 changed files with 67 additions and 12 deletions

Binary file not shown.

View File

@ -1,6 +1,8 @@
String pageSettings() {
String ptr = "<!DOCTYPE html> <html>\n";
ptr += "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n";
ptr += "<link href=\"https://fonts.googleapis.com/css?family=Open+Sans:300,400,600\" rel=\"stylesheet\">\n";
ptr += "<meta charset=\"utf-8\" />";
@ -15,8 +17,8 @@ String pageSettings() {
ptr += "<h1>Terarium - nastavení</h1>\n";
ptr += "<div class=\"center\">Verze: " + String(version) + "</div>";
ptr += "<div class=\"center\">Aktuální čas: " + time_getFormattedTime() + "</div>\n";
ptr += "<p class=\"center\">Verze: " + String(version) + "</p>";
ptr += "<p class=\"center\">Aktuální čas: " + time_getFormattedTime() + "</p>\n";
ptr += "<div class=\"center\"><a href=\"/\">Zpět na přehled</a></div>";
@ -111,10 +113,50 @@ String pageSettings() {
ptr += "</div>\n";
// ntp a cas
ptr += "<div class=\"setting_row\">\n";
ptr += "<label class=\"setting\" for=\"ntp\">NTP server:</label><br>\n";
ptr += "<input type=\"text\" id=\"ntp\" name=\"ntp\" value=\"" + pref.getString("ntp", "europe.pool.ntp.org") + "\"/>\n";
ptr += "</div>\n";
ptr += "<fieldset>";
ptr += "<legend>Čas:</legend>";
ptr += "<table class=\"center\">\n";
ptr += "<tr><td>Letní čas</td><td><input type=\"checkbox\" name=\"summer_time\"";
if(pref.getBool("summer_time", false)) {
ptr += " checked=\"checked\" ";
}
ptr += "/></td></tr>\n";
ptr += "<tr><td>Časové pásmo</td><td>";
ptr += "<select name=\"timezone\">";
ptr += "<option value=\"-12\""; if(pref.getString("timezone", "0")=="-12") { ptr += "selected=\"selected\""; } ptr += ">(GMT -12:00) Eniwetok, Kwajalein</option>";
ptr += "<option value=\"-11\""; if(pref.getString("timezone", "0")=="-11") { ptr += "selected=\"selected\""; } ptr += ">(GMT -11:00) Midway Island, Samoa</option>";
ptr += "<option value=\"-10\""; if(pref.getString("timezone", "0")=="-10") { ptr += "selected=\"selected\""; } ptr += ">(GMT -10:00) Hawaii</option>";
ptr += "<option value=\"-9\""; if(pref.getString("timezone", "0")=="-9") { ptr += "selected=\"selected\""; } ptr += ">(GMT -9:00) Alaska</option>";
ptr += "<option value=\"-8\""; if(pref.getString("timezone", "0")=="-8") { ptr += "selected=\"selected\""; } ptr += ">(GMT -8:00) Pacific Time (US &amp; Canada)</option>";
ptr += "<option value=\"-7\""; if(pref.getString("timezone", "0")=="-7") { ptr += "selected=\"selected\""; } ptr += ">(GMT -7:00) Mountain Time (US &amp; Canada)</option>";
ptr += "<option value=\"-6\""; if(pref.getString("timezone", "0")=="-6") { ptr += "selected=\"selected\""; } ptr += ">(GMT -6:00) Central Time (US &amp; Canada), Mexico City</option>";
ptr += "<option value=\"-5\""; if(pref.getString("timezone", "0")=="-5") { ptr += "selected=\"selected\""; } ptr += ">(GMT -5:00) Eastern Time (US &amp; Canada), Bogota, Lima</option>";
ptr += "<option value=\"-4\""; if(pref.getString("timezone", "0")=="-4") { ptr += "selected=\"selected\""; } ptr += ">(GMT -4:00) Atlantic Time (Canada), Caracas, La Paz</option>";
ptr += "<option value=\"-3\""; if(pref.getString("timezone", "0")=="-3") { ptr += "selected=\"selected\""; } ptr += ">(GMT -3:00) Brazil, Buenos Aires, Georgetown</option>";
ptr += "<option value=\"-2\""; if(pref.getString("timezone", "0")=="-2") { ptr += "selected=\"selected\""; } ptr += ">(GMT -2:00) Mid-Atlantic</option>";
ptr += "<option value=\"-1\""; if(pref.getString("timezone", "0")=="-1") { ptr += "selected=\"selected\""; } ptr += ">(GMT -1:00) Azores, Cape Verde Islands</option>";
ptr += "<option value=\"0\""; if(pref.getString("timezone", "0")=="-0") { ptr += "selected=\"selected\""; } ptr += ">(GMT) Western Europe Time, London, Lisbon, Casablanca</option>";
ptr += "<option value=\"1\""; if(pref.getString("timezone", "0")=="1") { ptr += "selected=\"selected\""; } ptr += ">(GMT +1:00) Brussels, Copenhagen, Madrid, Paris</option>";
ptr += "<option value=\"2\""; if(pref.getString("timezone", "0")=="2") { ptr += "selected=\"selected\""; } ptr += ">(GMT +2:00) Kaliningrad, South Africa</option>";
ptr += "<option value=\"3\""; if(pref.getString("timezone", "0")=="3") { ptr += "selected=\"selected\""; } ptr += ">(GMT +3:00) Baghdad, Riyadh, Moscow, St. Petersburg</option>";
ptr += "<option value=\"4\""; if(pref.getString("timezone", "0")=="4") { ptr += "selected=\"selected\""; } ptr += ">(GMT +4:00) Abu Dhabi, Muscat, Baku, Tbilisi</option>";
ptr += "<option value=\"5\""; if(pref.getString("timezone", "0")=="5") { ptr += "selected=\"selected\""; } ptr += ">(GMT +5:00) Ekaterinburg, Islamabad, Karachi, Tashkent</option>";
ptr += "<option value=\"6\""; if(pref.getString("timezone", "0")=="6") { ptr += "selected=\"selected\""; } ptr += ">(GMT +6:00) Almaty, Dhaka, Colombo</option>";
ptr += "<option value=\"7\""; if(pref.getString("timezone", "0")=="7") { ptr += "selected=\"selected\""; } ptr += ">(GMT +7:00) Bangkok, Hanoi, Jakarta</option>";
ptr += "<option value=\"8\""; if(pref.getString("timezone", "0")=="8") { ptr += "selected=\"selected\""; } ptr += ">(GMT +8:00) Beijing, Perth, Singapore, Hong Kong</option>";
ptr += "<option value=\"9\""; if(pref.getString("timezone", "0")=="9") { ptr += "selected=\"selected\""; } ptr += ">(GMT +9:00) Tokyo, Seoul, Osaka, Sapporo, Yakutsk</option>";
ptr += "<option value=\"10\""; if(pref.getString("timezone", "0")=="10") { ptr += "selected=\"selected\""; } ptr += ">(GMT +10:00) Eastern Australia, Guam, Vladivostok</option>";
ptr += "<option value=\"11\""; if(pref.getString("timezone", "0")=="11") { ptr += "selected=\"selected\""; } ptr += ">(GMT +11:00) Magadan, Solomon Islands, New Caledonia</option>";
ptr += "<option value=\"12\""; if(pref.getString("timezone", "0")=="12") { ptr += "selected=\"selected\""; } ptr += ">(GMT +12:00) Auckland, Wellington, Fiji, Kamchatka</option>";
ptr += "<option value=\"13\""; if(pref.getString("timezone", "0")=="13") { ptr += "selected=\"selected\""; } ptr += ">(GMT +13:00) Apia, Nukualofa</option>";
ptr += "<option value=\"14\""; if(pref.getString("timezone", "0")=="14") { ptr += "selected=\"selected\""; } ptr += ">(GMT +14:00) Line Islands, Tokelau</option>";
ptr += "</select>";
ptr += "</td></tr>\n";
ptr += "<tr><td>NTP server</td><td><input type=\"text\" id=\"ntp\" name=\"ntp\" value=\"" + pref.getString("ntp", "europe.pool.ntp.org") + "\"/></td></tr>\n";
ptr += "</table>\n";
ptr += "</fieldset>";
ptr += "<div class=\"setting_row\">\n";
ptr += "<input type=\"submit\" value=\"Uložit\"/>\n";

7
time.h
View File

@ -22,7 +22,12 @@ void time_client_setup() {
// GMT +8 = 28800
// GMT -1 = -3600
// GMT 0 = 0
timeClient.setTimeOffset(2*3600);
int timezone = pref.getString("timezone", "0").toInt();
int offset = timezone * 3600;
if(pref.getBool("summer_time", false)) {
offset = offset + 3600;
}
timeClient.setTimeOffset(offset);
}
void time_client_update() {

View File

@ -143,10 +143,18 @@ void handle_setting_save(AsyncWebServerRequest *request) {
Serial.println("Save settings relay 4");
}
// ntp
// time
if (request->hasParam("ntp", true)) {
pref.putString("ntp", request->getParam("ntp", true)->value());
Serial.println("Save settings NTP");
pref.putString("timezone", request->getParam("timezone", true)->value());
if (request->hasParam("summer_time", true)) {
pref.putBool("summer_time", true);
} else {
pref.putBool("summer_time", false);
}
Serial.println("Save settings time");
}
AsyncWebServerResponse *response = request->beginResponse(302, "text/plain", "");