/* * Setup code */ void wledInit() { Serial.begin(115200); SPIFFS.begin(); { Dir dir = SPIFFS.openDir("/"); while (dir.next()) { String fileName = dir.fileName(); size_t fileSize = dir.fileSize(); #ifdef DEBUG Serial.printf("FS File: %s, size: %s\n", fileName.c_str(), formatBytes(fileSize).c_str()); #endif } DEBUG_PRINTF("\n"); } DEBUG_PRINTLN("Init EEPROM"); EEPROM.begin(1024); loadSettingsFromEEPROM(); DEBUG_PRINT("CC: SSID: "); DEBUG_PRINT(clientssid); WiFi.disconnect(); //close old connections if (staticip[0] != 0) { WiFi.config(staticip, staticgateway, staticsubnet); } else { WiFi.config(0U, 0U, 0U); } if (apssid.length()>0) { DEBUG_PRINT("USING AP"); DEBUG_PRINTLN(apssid.length()); initAP(); } else { DEBUG_PRINTLN("NO AP"); WiFi.softAPdisconnect(true); } initCon(); DEBUG_PRINTLN(""); DEBUG_PRINT("Connected! IP address: "); DEBUG_PRINTLN(WiFi.localIP()); // Set up mDNS responder: if (cmdns != NULL && !only_ap && !MDNS.begin(cmdns.c_str())) { DEBUG_PRINTLN("Error setting up MDNS responder!"); down(); } DEBUG_PRINTLN("mDNS responder started"); if (udpPort > 0 && udpPort != ntpLocalPort) { udpConnected = notifierUdp.begin(udpPort); } if (ntpEnabled) ntpConnected = ntpUdp.begin(ntpLocalPort); //SERVER INIT //settings page server.on("/settings", HTTP_GET, [](){ if(!handleFileRead("/settings.htm")) server.send(200, "text/html", PAGE_settings); }); server.on("/button.png", HTTP_GET, [](){ if(!handleFileRead("/button.png")) server.send(404, "text/plain", "FileNotFound"); }); server.on("/moon.png", HTTP_GET, [](){ if(!handleFileRead("/moon.png")) server.send(404, "text/plain", "FileNotFound"); }); server.on("/favicon.ico", HTTP_GET, [](){ if(!handleFileRead("/favicon.ico")) server.send(404, "text/plain", "FileNotFound"); }); server.on("/", HTTP_GET, [](){ if(!handleFileRead("/index.htm")) server.send(200, "text/html", PAGE_index); }); server.on("/reset", HTTP_GET, [](){ server.send(200, "text/plain", "Rebooting... Go to main page when lights turn on."); reset(); }); server.on("/set-settings", HTTP_POST, [](){ handleSettingsSet(); if(!handleFileRead("/settingssaved.htm")) server.send(200, "text/html", PAGE_settingssaved); }); if (!ota_lock){ server.on("/edit", HTTP_GET, [](){ if(!handleFileRead("/edit.htm")) server.send(200, "text/html", PAGE_edit); }); server.on("/edit", HTTP_PUT, handleFileCreate); server.on("/edit", HTTP_DELETE, handleFileDelete); server.on("/edit", HTTP_POST, [](){ server.send(200, "text/plain", ""); }, handleFileUpload); server.on("/down", HTTP_GET, down); server.on("/cleareeprom", HTTP_GET, clearEEPROM); server.on("/list", HTTP_GET, handleFileList); //init ota page httpUpdater.setup(&server); } else { server.on("/edit", HTTP_GET, [](){ server.send(500, "text/plain", "OTA lock active"); }); server.on("/down", HTTP_GET, [](){ server.send(500, "text/plain", "OTA lock active"); }); server.on("/cleareeprom", HTTP_GET, [](){ server.send(500, "text/plain", "OTA lock active"); }); server.on("/update", HTTP_GET, [](){ server.send(500, "text/plain", "OTA lock active"); }); server.on("/list", HTTP_GET, [](){ server.send(500, "text/plain", "OTA lock active"); }); } //called when the url is not defined here, ajax-in; get-settings server.onNotFound([](){ if(!handleSet(server.uri())){ server.send(404, "text/plain", "FileNotFound"); } }); server.begin(); DEBUG_PRINTLN("HTTP server started"); // Add service to MDNS MDNS.addService("http", "tcp", 80); //Init alexa service alexaInit(); overlayCurrent = overlayDefault; // Initialize NeoPixel Strip strip.init(); strip.setLedCount(ledcount); strip.setMode(effectCurrent); strip.setColor(0); strip.setSpeed(effectSpeed); strip.setBrightness(255); strip.start(); colorUpdated(0); pinMode(buttonPin, INPUT_PULLUP); } void initAP(){ WiFi.softAP(apssid.c_str(), appass.c_str(), apchannel, aphide); } void initCon() { int fail_count = 0; if (clientssid.length() <1) fail_count = 33; WiFi.begin(clientssid.c_str(), clientpass.c_str()); while(WiFi.status() != WL_CONNECTED) { delay(500); DEBUG_PRINTLN("C_NC"); fail_count++; if (fail_count > 32) { WiFi.disconnect(); DEBUG_PRINTLN("Can't connect to network. Opening AP..."); String save = apssid; only_ap = true; if (apssid.length() <1) apssid = "WLED-AP"; initAP(); apssid = save; return; } } }