[Added]: New Menu Options in Web Interface

[Fixed]: NTP Update Bug
This commit is contained in:
Christian Mittring
2018-04-12 00:38:17 +02:00
parent 05cdb44ab5
commit a3959376e3
7 changed files with 67 additions and 19 deletions

View File

@@ -3,7 +3,7 @@ void run_alarm(long currentMillis){
{ {
write_log("Start Alarm"); write_log("Start Alarm");
start_wake_light(currentMillis); start_wake_light(currentMillis);
setAlarmTimer(15); setAlarmTimer(wakeup_time + 5);
} }
else{ else{
if (run_wake_up(currentMillis)){ if (run_wake_up(currentMillis)){

View File

@@ -16,7 +16,7 @@
#include <EEPROM.h> #include <EEPROM.h>
String Hardware = "0.10"; String Hardware = "0.10";
String Software = "0.07"; String Software = "0.08";
String ntp_server = "ntp2.uni-augsburg.de"; String ntp_server = "ntp2.uni-augsburg.de";
// Set web server port number to 80 // Set web server port number to 80
@@ -57,6 +57,7 @@ const int outBeep = 9;
bool wifi_connected = false; bool wifi_connected = false;
bool ntp_update = true; bool ntp_update = true;
int wakeup_time = 10;
//For Summertime change notification (change alarmtime) this should be saved in the EEPROM! //For Summertime change notification (change alarmtime) this should be saved in the EEPROM!
bool summer = false; bool summer = false;

View File

@@ -252,7 +252,7 @@ void set_clock(){
//Clock.setDoW(DoW); //Clock.setDoW(DoW);
if (summertime_EU(y,M,d,h,1)) if (summertime_EU(y,M,d,h,1))
{ {
Clock.setHour(h-1); Clock.setHour(h-1);
} }
else{ else{
Clock.setHour(h); Clock.setHour(h);

View File

@@ -5,15 +5,21 @@ uint addr = 0;
struct { struct {
bool summertime = false; bool summertime = false;
bool ntp_update = true; bool ntp_update = true;
int wakeup_time = 10;
char ntp_server[22] = "ntp2.uni-augsburg.de";
} data; } data;
void write_eeprom(){ void write_eeprom(){
EEPROM.begin(512); EEPROM.begin(1024);
// load EEPROM data into RAM, see it // load EEPROM data into RAM, see it
data.summertime = summer; data.summertime = summer;
data.ntp_update = ntp_update; data.ntp_update = ntp_update;
data.wakeup_time = wakeup_time;
ntp_server.toCharArray(data.ntp_server,22);
write_log("Writing to EEPROM: "+String(data.summertime)); write_log("Writing to EEPROM: "+String(data.summertime));
write_log("Writing to EEPROM: "+String(data.ntp_update)); write_log("Writing to EEPROM: "+String(data.ntp_update));
write_log("Writing to EEPROM: "+String(data.wakeup_time));
write_log("Writing to EEPROM: "+String(data.ntp_server));
// replace values in EEPROM // replace values in EEPROM
EEPROM.put(addr,data); EEPROM.put(addr,data);
EEPROM.commit(); EEPROM.commit();
@@ -21,12 +27,25 @@ void write_eeprom(){
} }
bool get_eeprom(){ bool get_eeprom(){
EEPROM.begin(512); EEPROM.begin(1024);
EEPROM.get(addr,data); EEPROM.get(addr,data);
write_log("Found: "+String(data.summertime)); write_log("Read: "+String(data.summertime));
write_log("Found: "+String(data.ntp_update)); write_log("Read: "+String(data.ntp_update));
write_log("Read: "+String(data.wakeup_time));
write_log("Read: "+String(data.ntp_update));
EEPROM.end(); EEPROM.end();
summer = data.summertime; summer = data.summertime;
ntp_update = data.ntp_update; ntp_update = data.ntp_update;
wakeup_time = data.wakeup_time;
ntp_server = data.ntp_server;
}
void reset_eeprom(){
summer = false;
ntp_update = true;
wakeup_time = 10;
ntp_server = "ntp2.uni-augsburg.de";
write_eeprom();
} }

View File

@@ -7,7 +7,7 @@ void show_white(){
leds[i] = CRGB::White; leds[i] = CRGB::White;
} }
FastLED.show(); FastLED.show();
write_log("Light: WHITE"); //write_log("Light: WHITE");
} }
//Show LED Colors //Show LED Colors
@@ -51,14 +51,20 @@ bool run_wake_up(long currentMillis){
if (alarm_started == true) if (alarm_started == true)
{ {
long delta = (currentMillis - startTime)/1000; long delta = (currentMillis - startTime)/1000;
if (delta < 220){ long max_wake_time = wakeup_time *60; //Calculate Wakeuptime in Seconds
set_color(30 + int(delta), int(delta)/4, 0); int maxvalue = int(220/(max_wake_time/3));
if (delta < (max_wake_time/3)){
int color_time = delta * maxvalue;
set_color(30 + int(color_time), int(color_time)/4, 0);
} }
else if(delta < 405){ else if((delta < ((max_wake_time/3)*2))){
set_color(255, int(delta - 220)+55, int((delta - 220)/4)); int color_time = (delta - (max_wake_time/3)) * maxvalue;
set_color(255, int(color_time)+55, int((color_time)/4));
} }
else if(delta < 605){ else if(delta < max_wake_time){
set_color(255, 255, int((delta - 405))+55); int color_time = (delta - ((max_wake_time/3)*2)) * maxvalue;
set_color(255, 255, int((color_time))+55);
} }
else{ else{
if (delta % 2 == 0){ if (delta % 2 == 0){

View File

@@ -17,7 +17,7 @@ void update_time_from_web(){
byte actualMonth = dateTime.month; byte actualMonth = dateTime.month;
byte actualday =dateTime.day; byte actualday =dateTime.day;
byte actualdayofWeek = dateTime.dayofWeek; byte actualdayofWeek = dateTime.dayofWeek;
if (actualMinute != m && actualday != 7 && actualMonth != 2 && actualyear != 2036){ if (actualMinute != m && actualday != 7 && actualMonth != 2 && actualyear != 2036 && actualHour != 0){
h = actualHour; h = actualHour;
m = actualMinute; m = actualMinute;
s = actualsecond; s = actualsecond;

View File

@@ -54,6 +54,20 @@ void handleArgs(){
} }
break; break;
} }
else if (server.argName(i) == "ntp_server"){
if (server.arg(i) != ""){
ntp_server = server.arg(i);
write_eeprom();
}
break;
}
else if(server.argName(i) == "wakeup_time"){
if (server.arg(i) != ""){
wakeup_time = server.arg(i).toInt();
write_eeprom();
}
break;
}
else if(server.argName(i) == "a1"){ else if(server.argName(i) == "a1"){
if(server.arg(i) == "true"){ if(server.arg(i) == "true"){
Clock.turnOnAlarm(1); Clock.turnOnAlarm(1);
@@ -89,6 +103,13 @@ void handleArgs(){
ESP.restart(); ESP.restart();
break; break;
} }
else if(server.argName(i) == "factory_reset" && server.arg(i) == "true"){
reset_eeprom();
print_reset();
delay(1000);
ESP.restart();
break;
}
} }
print_website(); print_website();
} }
@@ -102,10 +123,11 @@ void print_website(){
bool A2 = Clock.checkAlarmEnabled(2); bool A2 = Clock.checkAlarmEnabled(2);
String Alarm1 = "<b>Alarm 1:</b> <form action=\"/\" methode=\"get\"><input type=\"number\" name=\"al1h\" value=\"" + String(al1h) + "\">:<input type=\"number\" name=\"al1m\" value=\"" + String(al1m) + "\"><input type=\"submit\" value=\"Speichern\"></form> Sommerzeit: " + getBoolString(summer) + "<br>Aktiv: " + getBoolString(A1) + "<br><a href=\"?a1=true\">Aktivieren</a> " + "&nbsp;&nbsp;<a href=\"?a1=false\">Deaktivieren</a>"; String Alarm1 = "<b>Alarm 1:</b> <form action=\"/\" methode=\"get\"><input type=\"number\" name=\"al1h\" value=\"" + String(al1h) + "\">:<input type=\"number\" name=\"al1m\" value=\"" + String(al1m) + "\"><input type=\"submit\" value=\"Speichern\"></form> Sommerzeit: " + getBoolString(summer) + "<br>Aktiv: " + getBoolString(A1) + "<br><a href=\"?a1=true\">Aktivieren</a> " + "&nbsp;&nbsp;<a href=\"?a1=false\">Deaktivieren</a>";
String Alarm2 = "<b>Alarm 2:</b> <form action=\"/\" methode=\"get\"><input type=\"number\" name=\"al2h\" value=\"" + String(al2h) + "\">:<input type=\"number\" name=\"al2m\" value=\"" + String(al2m) + "\"><input type=\"submit\" value=\"Speichern\"></form> Sommerzeit: " + getBoolString(summer) + "<br>Aktiv: " + getBoolString(A2) + "<br><a href=\"?a2=true\">Aktivieren</a> " + "&nbsp;&nbsp;<a href=\"?a2=false\">Deaktivieren</a>"; String Alarm2 = "<b>Alarm 2:</b> <form action=\"/\" methode=\"get\"><input type=\"number\" name=\"al2h\" value=\"" + String(al2h) + "\">:<input type=\"number\" name=\"al2m\" value=\"" + String(al2m) + "\"><input type=\"submit\" value=\"Speichern\"></form> Sommerzeit: " + getBoolString(summer) + "<br>Aktiv: " + getBoolString(A2) + "<br><a href=\"?a2=true\">Aktivieren</a> " + "&nbsp;&nbsp;<a href=\"?a2=false\">Deaktivieren</a>";
String Alarm = "<h3>Alarm</h3>" + Alarm1 + "<br><br>" + Alarm2; String Weckzeit = "<b>Weckdauer (Minuten):</b> <form action=\"/\" methode=\"get\"><input type=\"number\" name=\"wakeup_time\" value=\"" + String(wakeup_time) + "\"><input type=\"submit\" value=\"Speichern\"></form>";
String Alarm = "<h3>Alarm</h3>" + Alarm1 + "<br><br>" + Alarm2 + "<br><br>" + Weckzeit;
String Zeit = "<br><h3>Zeit</h3>" + String(h) + ":" + String(m) + ":" + String(s) + " - " + String(d) + "." + String(M) + "." + String(y) + " | DST: " + String(summertime_EU(y,M,d,h,1)); String Zeit = "<br><h3>Zeit</h3>" + String(h) + ":" + String(m) + ":" + String(s) + " - " + String(d) + "." + String(M) + "." + String(y) + " | DST: " + String(summertime_EU(y,M,d,h,1));
String NTP = "<br><h3>NTP</h3>" + String("st&uuml;ndliches Zeit Update &uuml;ber " + ntp_server + ": ") + getBoolString(ntp_update) + "<br><a href=\"?ntp=true\">Aktivieren</a> " + "&nbsp;&nbsp;<a href=\"?ntp=false\">Deaktivieren</a>"; String NTP = "<br><h3>NTP</h3><b>Server:</b> <form action=\"/\" methode=\"get\"><input type=\"text\" name=\"ntp_server\" value=\"" + String(ntp_server) + "\"><input type=\"submit\" value=\"Speichern\"></form><br>st&uuml;ndliches Zeit Update: " + getBoolString(ntp_update) + "<br><a href=\"?ntp=true\">Aktivieren</a> " + "&nbsp;&nbsp;<a href=\"?ntp=false\">Deaktivieren</a>";
String Reboot = "<br><h3>System:</h3><a href=\"?reset=true\">Neustart</a><br><br><a href=\"update\">Software Update Modus</a>"; String Reboot = "<br><h3>System:</h3><a href=\"?reset=true\">Neustart</a><br><br><a href=\"update\">Software Update Modus</a><br><br><a href=\"?factory_reset=true\">Werkseinstellungen</a>";
String Body = card_start + Alarm + card_end + card_start + Zeit + card_end + card_start + NTP + card_end + card_start + Reboot + card_end; String Body = card_start + Alarm + card_end + card_start + Zeit + card_end + card_start + NTP + card_end + card_start + Reboot + card_end;
server.send(200, "text/html", Header + Body + Footer); server.send(200, "text/html", Header + Body + Footer);
} }