#include #include #include #include #include "defines.h" #include "configuration.h" tConfigBlock configBlock; const uint32_t MAGIC = 3235774470; const char* CONFIG_SSID = "espconfig"; extern ESP8266WebServer webServer; bool configSaved = false; static bool checkAuthentication() { Serial.print("User: "); Serial.println(configBlock.confUser); Serial.print("Pass: "); Serial.println(configBlock.confPasswd); return webServer.authenticate(configBlock.confUser, configBlock.confPasswd); } void configServeIndex() { bool configValid = (configBlock.magic == MAGIC); if (! configValid) { configBlock.magic = MAGIC; strcpy(configBlock.confUser, "admin"); strcpy(configBlock.confPasswd, "geheim123"); strcpy(configBlock.wifiSsid, "test"); strcpy(configBlock.wifiKey, "geheim"); strcpy(configBlock.mqttBroker, "broker.hottis.de"); strcpy(configBlock.mqttUser, "RgbLed1"); strcpy(configBlock.mqttPass, "geheim123"); strcpy(configBlock.mqttClientId, "RgbLed1"); configBlock.mqttPort = 8883; strcpy(configBlock.mqttTopicColorCommand, "IoT/RgbLed1/ColorCommand"); strcpy(configBlock.mqttTopicCommand, "IoT/RgbLed1/Command"); strcpy(configBlock.mqttDebugTopic, "IoT/RgbLed1/Debug"); configBlock.debugMode = 0; } if (! checkAuthentication()) { return webServer.requestAuthentication(); } String buffer = "" " " " ESP8266 based RGB-LED-Light" " " " " "

ESP8266 based RGB-LED-Light - ESP8266 Configuration Page

"; if (configSaved) { configSaved = false; buffer += "

Configuration saved

"; } buffer += "
" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " " " " " "
" " " "
" "
" " " ""; webServer.send(200, "text/html", buffer); #ifdef DEBUG Serial.println("indexHtml request served"); #endif } void configServeGetConfiguration() { if (! checkAuthentication()) { return webServer.requestAuthentication(); } String arg; arg = webServer.arg("confUser"); strcpy(configBlock.confUser, arg.c_str()); arg = webServer.arg("confPasswd"); strcpy(configBlock.confPasswd, arg.c_str()); arg = webServer.arg("wifiSsid"); strcpy(configBlock.wifiSsid, arg.c_str()); arg = webServer.arg("wifiKey"); strcpy(configBlock.wifiKey, arg.c_str()); arg = webServer.arg("mqttBroker"); strcpy(configBlock.mqttBroker, arg.c_str()); arg = webServer.arg("mqttUser"); strcpy(configBlock.mqttUser, arg.c_str()); arg = webServer.arg("mqttPass"); strcpy(configBlock.mqttPass, arg.c_str()); arg = webServer.arg("mqttClientId"); strcpy(configBlock.mqttClientId, arg.c_str()); arg = webServer.arg("mqttPort"); configBlock.mqttPort = atoi(arg.c_str()); arg = webServer.arg("mqttTopicColorCommand"); strcpy(configBlock.mqttTopicColorCommand, arg.c_str()); arg = webServer.arg("mqttTopicCommand"); strcpy(configBlock.mqttTopicCommand, arg.c_str()); arg = webServer.arg("mqttDebugTopic"); strcpy(configBlock.mqttDebugTopic, arg.c_str()); arg = webServer.arg("debugMode"); configBlock.debugMode = atoi(arg.c_str()); configBlock.magic = MAGIC; showConfiguration(); EEPROM.begin(512); EEPROM.put(EEPROM_ADDR, configBlock); EEPROM.commit(); Serial.println("EEPROM saved"); configSaved = true; webServer.sendHeader("Location", String("/"), true); webServer.send(302, "text/plain", ""); //webServer.send(200, "text/html", "configuration saved"); } void showConfiguration() { Serial.println("Configuration is"); Serial.print("magic = <"); Serial.print(configBlock.magic); Serial.println(">"); Serial.print("confUser = <"); Serial.print(configBlock.confUser); Serial.println(">"); Serial.print("confPasswd = <"); Serial.print(configBlock.confPasswd); Serial.println(">"); Serial.print("wifiSsid = <"); Serial.print(configBlock.wifiSsid); Serial.println(">"); Serial.print("wifiKey = <"); Serial.print(configBlock.wifiKey); Serial.println(">"); Serial.print("mqttBroker = <"); Serial.print(configBlock.mqttBroker); Serial.println(">"); Serial.print("mqttUser = <"); Serial.print(configBlock.mqttUser); Serial.println(">"); Serial.print("mqttPass = <"); Serial.print(configBlock.mqttPass); Serial.println(">"); Serial.print("mqttClientId = <"); Serial.print(configBlock.mqttClientId); Serial.println(">"); Serial.print("mqttPort = <"); Serial.print(configBlock.mqttPort); Serial.println(">"); Serial.print("mqttTopicColorCommand = <"); Serial.print(configBlock.mqttTopicColorCommand); Serial.println(">"); Serial.print("mqttTopicCommand = <"); Serial.print(configBlock.mqttTopicCommand); Serial.println(">"); Serial.print("mqttDebugTopic = <"); Serial.print(configBlock.mqttDebugTopic); Serial.println(">"); Serial.print("debugMode = <"); Serial.print(configBlock.debugMode); Serial.println(">"); Serial.println("---"); }