| Line 8... |
Line 8... |
| 8 |
bool captiveRun = false;
|
8 |
bool captiveRun = false;
|
| 9 |
|
9 |
|
| 10 |
// AsyncFsWebServer server(80, FILESYSTEM, "esphost");
|
10 |
// AsyncFsWebServer server(80, FILESYSTEM, "esphost");
|
| 11 |
AsyncFsWebServer server(80, FILESYSTEM);
|
11 |
AsyncFsWebServer server(80, FILESYSTEM);
|
| 12 |
|
12 |
|
| 13 |
#ifndef LED_BUILTIN
|
13 |
#ifndef Default_MQTT_Port
|
| 14 |
#define LED_BUILTIN 2
|
14 |
#define Default_MQTT_Port 1883
|
| 15 |
#endif
|
15 |
#endif
|
| 16 |
|
16 |
|
| 17 |
#define BTN_SAVE 5
|
17 |
#define BTN_SAVE 5
|
| 18 |
|
18 |
|
| 19 |
// Test "options" values
|
19 |
// Test "options" values
|
| 20 |
uint8_t ledPin = LED_BUILTIN;
|
20 |
uint16_t MQTT_Port = Default_MQTT_Port;
|
| 21 |
bool boolVar = true;
|
21 |
bool MQTT_Enabled = false;
|
| 22 |
uint32_t longVar = 1234567890;
|
22 |
String MQTT_Server = "";
|
| 23 |
float floatVar = 15.5F;
|
23 |
String MQTT_User = "";
|
| 24 |
String stringVar = "Test option String";
|
24 |
String MQTT_Password = "";
|
| 25 |
|
- |
|
| 26 |
// In order to show a dropdown list box in /setup page
|
- |
|
| 27 |
// we need a list of values and a variable to store the selected option
|
- |
|
| 28 |
#define LIST_SIZE 7
|
- |
|
| 29 |
const char* dropdownList[LIST_SIZE] =
|
- |
|
| 30 |
{"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
|
- |
|
| 31 |
String dropdownSelected;
|
25 |
String MQTT_Prefix = "";
|
| 32 |
|
26 |
|
| 33 |
// Var labels (in /setup webpage)
|
27 |
// Var labels (in /setup webpage)
|
| 34 |
#define LED_LABEL "The LED pin number"
|
28 |
#define MQTT_ENABLED_LABEL "MQTT Enabled"
|
| 35 |
#define BOOL_LABEL "A bool variable"
|
29 |
#define MQTT_SERVER_LABEL "MQTT Server"
|
| 36 |
#define LONG_LABEL "A long variable"
|
30 |
#define MQTT_PORT_LABEL "MQTT Server Port"
|
| 37 |
#define FLOAT_LABEL "A float variable"
|
31 |
#define MQTT_USER_LABEL "MQTT User"
|
| 38 |
#define STRING_LABEL "A String variable"
|
32 |
#define MQTT_PASSWORD_LABEL "MQTT Password"
|
| 39 |
#define DROPDOWN_LABEL "A dropdown listbox"
|
33 |
#define MQTT_PREFIX_LABEL "MQTT Prefix"
|
| 40 |
|
34 |
|
| 41 |
// Timezone definition to get properly time from NTP server
|
35 |
// Timezone definition to get properly time from NTP server
|
| 42 |
#define MYTZ "CET-1CEST,M3.5.0,M10.5.0/3"
|
36 |
#define MYTZ "CET-1CEST,M3.5.0,M10.5.0/3"
|
| 43 |
struct tm Time;
|
37 |
struct tm Time;
|
| 44 |
|
38 |
|
| Line 92... |
Line 86... |
| 92 |
fsInfo->totalBytes = LittleFS.totalBytes();
|
86 |
fsInfo->totalBytes = LittleFS.totalBytes();
|
| 93 |
fsInfo->usedBytes = LittleFS.usedBytes();
|
87 |
fsInfo->usedBytes = LittleFS.usedBytes();
|
| 94 |
}
|
88 |
}
|
| 95 |
#endif
|
89 |
#endif
|
| 96 |
|
90 |
|
| 97 |
|
- |
|
| 98 |
//////////////////// Load application options from filesystem ////////////////////
|
91 |
//////////////////// Load application options from filesystem ////////////////////
|
| 99 |
bool loadOptions() {
|
92 |
bool loadOptions() {
|
| 100 |
if (FILESYSTEM.exists(server.getConfiFileName())) {
|
93 |
if (FILESYSTEM.exists(server.getConfiFileName())) {
|
| 101 |
server.getOptionValue(LED_LABEL, ledPin);
|
94 |
server.getOptionValue(MQTT_ENABLED_LABEL, MQTT_Enabled);
|
| 102 |
server.getOptionValue(BOOL_LABEL, boolVar);
|
95 |
server.getOptionValue(MQTT_SERVER_LABEL, MQTT_Server);
|
| 103 |
server.getOptionValue(LONG_LABEL, longVar);
|
96 |
server.getOptionValue(MQTT_PORT_LABEL, MQTT_Port);
|
| 104 |
server.getOptionValue(FLOAT_LABEL, floatVar);
|
97 |
server.getOptionValue(MQTT_USER_LABEL, MQTT_User);
|
| 105 |
server.getOptionValue(STRING_LABEL, stringVar);
|
98 |
server.getOptionValue(MQTT_PASSWORD_LABEL, MQTT_Password);
|
| 106 |
server.getOptionValue(DROPDOWN_LABEL, dropdownSelected);
|
99 |
server.getOptionValue(MQTT_PREFIX_LABEL, MQTT_Prefix);
|
| 107 |
|
100 |
|
| 108 |
Serial.println("\nThis are the current values stored: \n");
|
101 |
Serial.println("\nThis are the current values stored: \n");
|
| 109 |
Serial.printf("LED pin value: %d\n", ledPin);
|
102 |
Serial.printf("MQTT Enabled: %s\n", MQTT_Enabled ? "true" : "false");
|
| 110 |
Serial.printf("Bool value: %s\n", boolVar ? "true" : "false");
|
103 |
Serial.printf("MQTT Server: %s\n", MQTT_Server.c_str());
|
| 111 |
Serial.printf("Long value: %u\n", longVar);
|
104 |
Serial.printf("MQTT Server Port: %d\n", MQTT_Port);
|
| 112 |
Serial.printf("Float value: %d.%d\n", (int)floatVar, (int)(floatVar*1000)%1000);
|
105 |
Serial.printf("MQTT User: %s\n", MQTT_User.c_str());
|
| 113 |
Serial.printf("String value: %s\n", stringVar.c_str());
|
106 |
Serial.printf("MQTT password: %s\n", MQTT_Password.c_str());
|
| 114 |
Serial.printf("Dropdown selected value: %s\n\n", dropdownSelected.c_str());
|
107 |
Serial.printf("MQTT Prefix: %s\n", MQTT_Prefix.c_str());
|
| 115 |
return true;
|
108 |
return true;
|
| 116 |
}
|
109 |
}
|
| 117 |
else
|
110 |
else
|
| 118 |
Serial.println(F("Config file not exist"));
|
111 |
Serial.println(F("Config file not exist"));
|
| 119 |
return false;
|
112 |
return false;
|
| Line 161... |
Line 154... |
| 161 |
|
154 |
|
| 162 |
// Add custom page handlers to webserver
|
155 |
// Add custom page handlers to webserver
|
| 163 |
server.on("/reload", HTTP_GET, handleLoadOptions);
|
156 |
server.on("/reload", HTTP_GET, handleLoadOptions);
|
| 164 |
|
157 |
|
| 165 |
// Configure /setup page and start Web Server
|
158 |
// Configure /setup page and start Web Server
|
| 166 |
server.addOptionBox("My Options");
|
159 |
server.addOptionBox("MQTT");
|
| 167 |
|
160 |
|
| 168 |
server.addOption(BOOL_LABEL, boolVar);
|
161 |
server.addOption(MQTT_ENABLED_LABEL, MQTT_Enabled);
|
| 169 |
server.addOption(LED_LABEL, ledPin);
|
162 |
server.addOption(MQTT_SERVER_LABEL, MQTT_Server);
|
| 170 |
server.addOption(LONG_LABEL, longVar);
|
163 |
server.addOption(MQTT_PORT_LABEL, MQTT_Port);
|
| 171 |
server.addOption(FLOAT_LABEL, floatVar, 1.0, 100.0, 0.01);
|
164 |
server.addOption(MQTT_USER_LABEL, MQTT_User);
|
| 172 |
server.addOption(STRING_LABEL, stringVar);
|
165 |
server.addOption(MQTT_PASSWORD_LABEL, MQTT_Password);
|
| 173 |
server.addDropdownList(DROPDOWN_LABEL, dropdownList, LIST_SIZE);
|
166 |
server.addOption(MQTT_PREFIX_LABEL, MQTT_Prefix);
|
| - |
|
167 |
server.addOptionBox(const char *title);
|
| 174 |
|
168 |
|
| 175 |
server.addHTML(save_btn_htm, "buttons", /*overwrite*/ false);
|
169 |
server.addHTML(save_btn_htm, "buttons", /*overwrite*/ false);
|
| 176 |
server.addJavascript(button_script, "js", /*overwrite*/ false);
|
170 |
server.addJavascript(button_script, "js", /*overwrite*/ false);
|
| 177 |
|
171 |
|
| 178 |
// Enable ACE FS file web editor and add FS info callback function
|
172 |
// Enable ACE FS file web editor and add FS info callback function
|