//Helpers
String logfile = "";
//Webserver
//###################################################################################
void setup_webserver(){
httpUpdater.setup(&server, "Licht", "Wecker");
server.on("/log", []() { //Define the handling function for the path
server.send(200, "text/plain", logfile);
});
server.on("/", handleRootPath); //Associate the handler function to the path
server.begin(); //Start the server
}
void handle_webserver(){
server.handleClient(); //Handling of incoming requests
}
//Layout
//###################################################################################
String Meta = "";
String CSS = "";
String Header = "
" + Meta + CSS + "Lichtwecker";
String Footer = "
";
String card_start = "";
String card_end = "
";
void handleRootPath() { //Handler for the rooth path
handleArgs();
}
//############################################################
//WebPage Args
void handleArgs(){
for (int i = 0; i < server.args(); i++) {
//write_log(server.argName(i) +" : " +server.arg(i));
if(server.argName(i) == "ntp"){
if(server.arg(i) == "true"){
if (ntp_update != true){
ntp_update = true;
write_eeprom();
}
}
else if (server.arg(i) == "false"){
if (ntp_update != false){
ntp_update = false;
write_eeprom();
}
}
redirect();
break;
}
else if (server.argName(i) == "ntp_server"){
if (server.arg(i) != ""){
ntp_server = server.arg(i);
write_eeprom();
}
redirect();
break;
}
else if(server.argName(i) == "wakeup_time"){
if (server.arg(i) != ""){
wakeup_time = server.arg(i).toInt();
write_eeprom();
}
redirect();
break;
}
else if(server.argName(i) == "a1"){
if(server.arg(i) == "true"){
Clock.turnOnAlarm(1);
}
else if (server.arg(i) == "false"){
Clock.turnOffAlarm(1);
}
redirect();
break;
}
else if(server.argName(i) == "a2"){
if(server.arg(i) == "true"){
Clock.turnOnAlarm(2);
}
else if (server.arg(i) == "false"){
Clock.turnOffAlarm(2);
}
redirect();
break;
}
else if(server.argName(i) == "al1h" && server.argName(i +1) == "al1m"){
al1h = server.arg(i).toInt();
al1m = server.arg(i+1).toInt();
set_alarm1();
redirect();
break;
}
else if(server.argName(i) == "al2h" && server.argName(i +1) == "al2m"){
al2h = server.arg(i).toInt();
al2m = server.arg(i+1).toInt();
set_alarm2();
redirect();
break;
}
else if (server.argName(i) == "news"){
if (server.arg(i) != ""){
message_text = server.arg(i);
}
redirect();
break;
}
else if(server.argName(i) == "reset" && server.arg(i) == "true"){
print_reset();
ESP.restart();
break;
}
else if(server.argName(i) == "factory_reset" && server.arg(i) == "true"){
reset_eeprom();
print_reset();
delay(1000);
ESP.restart();
break;
}
}
print_website();
}
//Webpage
//###################################################################################
void print_website(){
bool A1 = Clock.checkAlarmEnabled(1);
bool A2 = Clock.checkAlarmEnabled(2);
String Alarm1 = "Alarm 1: Sommerzeit: " + getBoolString(summer) + "
Aktiv: " + getBoolString(A1) + "
Aktivieren " + " Deaktivieren";
String Alarm2 = "Alarm 2: Sommerzeit: " + getBoolString(summer) + "
Aktiv: " + getBoolString(A2) + "
Aktivieren " + " Deaktivieren";
String Weckzeit = "Weckdauer (Minuten): ";
String Alarm = "Alarm
" + Alarm1 + "
" + Alarm2 + "
" + Weckzeit;
String Zeit = "
Zeit
" + String(h) + ":" + String(m) + ":" + String(s) + " - " + String(d) + "." + String(M) + "." + String(y) + " | DST: " + String(summertime_EU(y,M,d,h,1));
String News = "
Nachricht
Diese Nachricht wird auf dem Display angezeigt!
";
String NTP = "
NTP
Server:
stündliches Zeit Update: " + getBoolString(ntp_update) + "
Aktivieren " + " Deaktivieren";
String Reboot = "
System:
Neustart
Software Update Modus
Werkseinstellungen
Log
Weitere Informationen
Support";
String Body = card_start + Alarm + card_end + card_start + News + card_end + card_start + NTP + card_end + card_start + Reboot + card_end;
server.send(200, "text/html", Header + Body + Footer);
}
void print_reset(){
String Body = "";
server.send(200, "text/html", Header + Body + Footer);
delay(500);
}
void redirect(){
String redirect = "";
server.send(200, "text/html", redirect);
delay(50);
}
//Helpers
//####################################################################################
String getBoolString(bool value){
if(value)
{
return "Ja";
}
return "Nein";
}
void write_log(String text){
Serial.println(text);
logfile = logfile + String(text) + "\r\n";
if (logfile.length() > 140000) {
logfile = logfile.substring((logfile.length()-100000));
}
}