-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebServer.ino
More file actions
119 lines (99 loc) · 4.06 KB
/
webServer.ino
File metadata and controls
119 lines (99 loc) · 4.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
boolean setupWebServer() {
if (!SPIFFS.begin(true)) {
Serial.println("An Error has occurred while mounting SPIFFS");
return false;
}
//hello world
server.on("/hw", HTTP_GET, [](AsyncWebServerRequest * request) {
request->send(200, "text/plain", "Hello, Hens");
});
server.on("/style.css", HTTP_GET, [](AsyncWebServerRequest * request) {
request->send(SPIFFS, "/style.css", "text/css");
});
server.on("/", HTTP_GET, [](AsyncWebServerRequest * request) {
request->send(SPIFFS, "/index.html", String(), false, processor);
});
server.on("/open", HTTP_GET, [](AsyncWebServerRequest * request) { //call the door open routine;
request->send(200, "text/plain", "Open Initiated");
openDoorApi();
});
server.on("/close", HTTP_GET, [](AsyncWebServerRequest * request) { //call the door close routine;
request->send(200, "text/plain", "Close Initiated");
closeDoorApi();
});
server.on("/update", HTTP_GET, [](AsyncWebServerRequest * request) {
request->send(SPIFFS, "/update.html", String(), false, processor);
});
server.on("/settings", HTTP_GET, [](AsyncWebServerRequest * request) {
request->send(SPIFFS, "/settings.html", String(), false, processor);
});
/*
* Presume that the inputs are validated from the javascript for save open/close.
* /saveOpen and /saveClose are nearly identical and can be refactored at some point
*/
server.on("/saveClose", HTTP_GET, [](AsyncWebServerRequest * request) { //call close schedule save;
const char* HOUR = "h";
const char* MIN = "m";
String newHour = "";
String newMin = "";
Serial.println("Updating open schedule");
if (request->hasParam(HOUR) && request->hasParam(MIN)) {
newHour = request->getParam(HOUR)->value();
newMin = request->getParam(MIN)->value();
updateSchedule(newHour.toInt(),newMin.toInt(),CSCH);
}
request->send(SPIFFS, "/update.html", String(), false, processor);
});
server.on("/saveOpen", HTTP_GET, [](AsyncWebServerRequest * request) { //call open schedule save;
const char* HOUR = "h";
const char* MIN = "m";
String newHour = "";
String newMin = "";
Serial.println("Updating open schedule");
if (request->hasParam(HOUR) && request->hasParam(MIN)) {
newHour = request->getParam(HOUR)->value();
newMin = request->getParam(MIN)->value();
updateSchedule(newHour.toInt(),newMin.toInt(),OSCH);
}
request->send(SPIFFS, "/update.html", String(), false, processor);
});
server.on("/spring", HTTP_GET, [](AsyncWebServerRequest * request) { //update offset +1
updateTime(1);
request->send(SPIFFS, "/update.html", String(), false, processor);
});
server.on("/fall", HTTP_GET, [](AsyncWebServerRequest * request) { //update offset -1
updateTime(-1);
request->send(SPIFFS, "/update.html", String(), false, processor);
});
server.on("/newWifi", HTTP_GET, [](AsyncWebServerRequest * request) {
request->send(SPIFFS, "/newWifi.html", String(), false, processor);
});
server.on("/saveWifi", HTTP_GET, [](AsyncWebServerRequest * request) {
const char* WSID = "wifissid";
const char* WPWD = "wifipass";
Serial.println("Updating wifi and restarting");
String ssid = "";
String passwd = "";
if (request->hasParam(WSID)) {
ssid = request->getParam(WSID)->value();
}
if (request->hasParam(WPWD)) {
passwd = request->getParam(WPWD)->value();
}
if (ssid.length() > 0 && passwd.length() > 0){
//update params, send restart OK
Serial.print("password is:"); Serial.print(passwd); Serial.println(":");
request->send(200, "text/plain", "creds accepted");
} else {
request->send(200, "text/plain", "retry");
}
});
server.on("/notifyEmail", HTTP_GET, [](AsyncWebServerRequest * request) { //update email notification
request->send(SPIFFS, "/settings.html", String(), false, processor);
});
server.on("/notifyMode", HTTP_GET, [](AsyncWebServerRequest * request) { //update email mode
request->send(SPIFFS, "/settings.html", String(), false, processor);
});
server.begin();
return true;
}